Array sortieren
In einem Java Array hat jedes Objekt einen festen Platz mit einer laufenden Nummer.
Hier wird gezeigt, wie man die Objekte im Array sortieren kann (also sozusagen "Arrays sortieren").
Am einfachsten geht es mit Objekten, die das Interface java.lang.Comparable implementieren, wie zum Beispiel die ganzen Java Daten-Container Klassen String, Integer, Long, Float, Double, BigInteger, BigDecimal und so weiter:
Arrays.sort(namen);
final int[] zahlen = new int[] {7,3,9,2};
Arrays.sort(zahlen);
Man kann aber auch einen java.util.Comparator übergeben, entweder, weil die Objekte im Array nicht das Interface Comparable implementieren, oder aber, weil man eine eigene Sortierreihenfolge vorgeben will, als in der zu sortierenden Java Klasse vorgesehen ist:
Arrays.sort(namen, String.CASE_INSENSITIVE_ORDER);
Binäre Suche
Im sortierten Array kann man mittels binärer Suche schneller ein Objekt auffinden, als dies bei sequenzieller Suche der Fall wäre:final int position1 = Arrays.binarySearch(irgendeinSortiertesArray, "blau");
final int position2 = Arrays.binarySearch(irgendeinSortiertesArray, "blau", String.CASE_INSENSITIVE_ORDER);
Auch bei der binären Suche kann also ein Comparator übergeben werden.
Wichtig: die Sortierung des Arrays und der Comparator beim Suchen müssen übereinstimmen, ansonsten ergeben sich zufällige, nutzlose Ergebnisse.
In diesem Beispiel sind alle Farben klein geschrieben; deswegen macht es keinen Unterschied, ob Groß- und Kleinschreibung unterschieden werden oder nicht.
Liste sortieren (ArrayList, List)
Auch die Sortierung von Elementen in einer Liste, zum Beispiel einerArrayList
, muss in Java nicht selbst implementiert werden:namen.add("Hans");
namen.add("Werner");
namen.add("Alfred");
namen.add("Klaus");
namen.add("Eugen");
Collections.sort(namen); // ArrayList sortieren
System.out.println(namen); // zeigt die sortierte Liste
Nach oben, Inhaltsverzeichnis, Impressum |
Admin: Artikel editieren |