Ich habe ein zweidimensionales Array (String[][]), das Werte wie in einer
Tabelle speichert.
Wie kann ich dieses Array nun nach einer bestimmten Spalte alphabetisch bzw.
numerisch sortieren?
Beispielcode (Funktion) wäre super!
Besten Dank!
Gruß
Markus
Markus Zeller schrieb:
Das ist ja fast schon eine FAQ! :-)
Du mußt einen entsprechenden Comparator schreiben, etwa so:
class StringArrayComparator {
public StringArrayComparator(int spalte) {
this.spalte=spalte;
}
public int compare(Object o1, Object o2) {
String[] s1=(String[]) o1;
String[] s2=(String[]) o2;
return s1[spalte].compareTo(s2[spalte]);
}
}
Dann kannst Du alles auf die java.util.Arrays.sort()-Methode (oder die
anderen Collections aus diesem Package) loslassen.
Der rest ist RTFM. ;-)
Ciao,
Ingo
Also erstmal wird es nur dann vernünftig (ohne großes Rumkopieren) funktionieren
wenn Du mit "Spalte" die zweite Dimension meinst, da in Java ein zweidimensionales
Array ein Array von eindimensionalen Arrays ist.
Ansonsten: einen java.util.Comparator implementieren, der zwei String[] auf einer
bestimmen Position vergleicht, und dann mit java.util.Arrays.sort() sortieren.
a) Du schiebst die Werte tatsächlich in eine Datenbank-Tabelle,
dann ist die Sortierung doch völlig überflüssig, weil das
DBMS die Daten so ablegt, wie es gerade paßt.
b) Du füllst mit diesem Array ein TableModel, dann würde ich
die Sortierung im TableModel implementieren, was kein Akt
ist. Aber auch da brauchst Du, wie schon von den anderen
erwähnt, einen Comparator.
A.G.