You can use Collections.sort and provide a custom Comparator where you compare the first element of each list, i.e the name :
List> namesAndNumbers = new ArrayList>();
namesAndNumbers.add(new ArrayList(Arrays.asList("Mike", "(805) 766-4920")));
namesAndNumbers.add(new ArrayList(Arrays.asList("Emily", "(705) 668-9292", "(705) 555-1060")));
namesAndNumbers.add(new ArrayList(Arrays.asList("James", "(605) 965-2000")));
Collections.sort(namesAndNumbers, new Comparator>() {
@Override
public int compare(ArrayList o1, ArrayList o2) {
return o1.get(0).compareTo(o2.get(0));
}
});
System.out.println(namesAndNumbers);
Output :
[[Emily, (705) 668-9292, (705) 555-1060], [James, (605) 965-2000], [Mike, (805) 766-4920]]