16.2.5 | Algorithmen |
In der Klasse Collections (nicht zu verwechseln mit Collection) sind mehrere Algorithmen implementiert, die auf Kollektionen angewendet werden können. Einige dieser Algorithmen sind auf alle Kollektionen anwendbar, viele jedoch speziell auf die Klasse List. Die Algorithmen wurden alle mit statischen Methoden realisiert und können daher direkt über die Klasse aufgerufen werden.
Folgende Methoden können auf alle Kollektionen angewendet werden:Folgende Methoden können auf Implementierungen von List angewendet werden:
- Object max(Collection col)
liefert das größte Element der Collection col zurück. Diese Methode kann jedoch nur auf Kollektionen angewendet werden, deren Elemente das Interface Comparable implementieren. Eine zweite Variante verfügt über einen zweiten Parameter vom Typ Comparator. Durch Verwendung dieser Methode kann der Vergleichsoperator auch explizit übergeben werden. Die Elemente müssen in diesem Fall nicht unbedingt Comparable implementieren.- Object min(Collection col)
arbeitet wie max(), liefert jedoch das kleinste Element zurück. Auch von min() gibt es zwei Varianten.
- int binarySearch(List list, Object key)
sucht in der Liste list das Element key über die binäre Suche. Wird key in der Liste gefunden, liefert binarySearch() die Index-Position des Elements zurück, wird key nicht gefunden, liefert die Methode den negativen Wert der potenziellen Einfügeposition minus 1. Dadurch ist gewährleistet, dass die Methode immer negative Werte liefert, wenn das Objekt nicht gefunden wird.- void reverse(List l)
ordnet die Elemente der Liste l so um, dass sie in umgekehrter Reihenfolge stehen.- void shuffle(List l)
permutiert die Elemente in der Liste l zufällig.- void sort(List l)
sortiert die Elemente in der Liste l aufsteigend. Diese Variante setzt voraus, dass die Klassen aller enthaltenen Objekte Interface Comparable implementieren. Ansonsten kann die zweite Variante benutzt werden, der ein Exemplar der Klasse Comparator übergeben wird.