IMHO ist das aber eine Design-Schwäche. Zusammengehörende Daten in mehrdimensionalen Arrays zu speichern ist einfach unpraktisch.
Richtige Vorgehensweise wäre es eine Klasse „Person“ zu schreiben die als Attribute den Vor- und den Nachnamen hat. Diese Klasse implementiert das „Comparable“-Interface und vergleicht intern zwei Objekte intern mit dem Nachnamen (zusätzlich könntest du dann auch einbauen, dass bei gleichem Nachnamen der Vorname verglichen wird).
Dann nimmst du ein eindimensionales Array mit Elementen vom Typ „Person“ und kannst dieses dann einfach mit Arrays.sort sortieren.
Ich hatte vielleicht vergessen zu sagen, dass ich keine Chance habe, die Daten in einer anderen Form zu verwenden. Dieses Array besteht bereits in einer Serverpage und damit muss ich leben.
Eine Lösung hat sich nun gefunden. Folgenede Klasse ermöglich die Verwendung der Standardmethode Arrays.Sort:
public class StringArrayComparator implements Comparator
{
int sortColumn = 0;
public int setSortColumn(int c)
{
sortColumn = c;
return c;
}
public int compare(Object o1, Object o2)
{
if (o1 == null && o2 == null)
return 0;
if (o1 == null)
return -1;
if (o2 == null)
return 1;
String[] s1 = (String[])o1;
String[] s2 = (String[])o2;
return s1[sortColumn].compareTo(s2[sortColumn]);
}
}
Ein aufruf selbiger sieht dann so aus:
StringArrayComparator comp = new StringArrayComparator();
comp.setSortColumn(2);
Arrays.sort(foundUser,comp);