Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich suche einen Algorithmus oder eine Funktion, die ein String-Array alphabetisch sortieren kann. Die sort-Funktion in Java.Util.Arrays ist ja nur für Datentypen wie Integer, Character, etc. möglich.
Es handelt sich bei dem Array um normale Strings, keine Zahlen.
Ich habe schon einige Seiten danach durchforstet und nichts richtiges gefunden (nur für Strings mit Zahlenwerten oder so). Vielleicht hat ja jemand was zur Hand
@L-ectron-X
Das habe ich bereits probiert. Die sort-Funktion von util.arrays funktioniert nicht (jedenfalls so wie ich gerne möchte).
Die Fehlermeldung sieht so aus:
Code:
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.compareTo(Unknown Source)
at java.lang.String.compareTo(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at tableListRefresh(Gui.java:125)
at Gui.<init>(Gui.java:69)
at main(Main.java:38)
Mein code so (gekürzt):
Code:
import java.util.Arrays;
int tableIds[] = new int[200];
String tableNames[] = new String[200];
int countTableIds[] = new int[1];
getTableIds(tableIds, countTableIds);
for( int i = 0; i < countTableIds[0]; i++ )
{
tableNames[i] = getTableName(tableIds[i]);
}
Arrays.sort(tableNames);
tableNames hat passende Inhalte. Ich kann diese nachher (ohne das sort()) problemlos ausgeben.
Edit:
In der Funktion geht es darum, Tabellennamen auszulesen und diese sortiert auszugeben. Da dieses über ein C-Programm funktioniert (Swig), ist die countTableIds-Variable ein einzelliges Int-Array.
Edit 2:
Ich muss mir das nochmals genauer anschauen, denn dein Beispiel, L-ectron-X, funktioniert so.
Ich habe ja das Array mit 200 Zellen, diese sind aber nicht alle beschrieben, d.h. ich habe momentan 103 Elemente. Da die Restlichen natürlich nicht initialisiert sind, kommt es da zur NullPointerException.
(Selbiges passiert bei deiner Funktion, wenn der String beispielsweise auf 10 Zellen gesetzt würde.)