1. Liste der Methoden

Erinnern Sie sich daran, dass die Entwickler von Java eine ganze Hilfsklasse geschrieben haben, die Arraysuns bei der Arbeit mit Arrays die Arbeit erleichtert?

Dasselbe taten sie auch für Sammlungen. Java verfügt über eine java.util.CollectionsKlasse mit vielen Methoden, die für die Arbeit mit Sammlungen nützlich sind. Hier sind nur die interessantesten:

Methoden Beschreibung
addAll(colls, e1, e2, e3, ...)
Fügt der Sammlung die Elemente e1, e2, , ... hinzue3colls
fill(list, obj)
Ersetzt alle Elemente in der übergebenen Liste durchobj
nCopies(n, obj)
Gibt eine Liste von nKopien des objObjekts zurück
replaceAll(list, oldVal, newVal)
Ersetzt alle Vorkommen von oldValwith newValin der listListe
copy(dest, src)
Kopiert alle Elemente aus der srcListe in die destListe
reverse(list)
Kehrt die Liste um.
sort(list)
Sortiert die Liste in aufsteigender Reihenfolge
rotate(list, n)
Verschiebt die Elemente der listListe zyklisch um nElemente
shuffle(list)
Mischt die Elemente in der Liste zufällig
min(colls)
Findet das minimale Element in der collsSammlung
max(colls)
Findet das maximale Element in der collsSammlung
frequency(colls, obj)
Bestimmt, wie oft das Element in der Sammlung objvorkommtcolls
binarySearch(list, key)
Sucht keyin einer sortierten Liste und gibt den entsprechenden Index zurück.
disjoint(colls1, colls2)
Gibt zurück true, wenn die Sammlungen keine gemeinsamen Elemente haben
Wichtig:

Viele dieser Methoden verwenden nicht die Klassen ArrayList, HashSetund HashMapan sich, sondern mit den entsprechenden Schnittstellen: Collection<T>, List<T>, Map<K, V>.

Das ist kein Problem: Wenn eine Methode ein akzeptiert List<T>, können Sie ihr immer ein übergeben ArrayList<Integer>, aber der Zuweisungsoperator funktioniert nicht in die entgegengesetzte Richtung.


2. Sammlungen erstellen und ändern

Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)Methode

Die addAll()Methode fügt der Sammlung die Elemente e1, e2, e3, ... hinzu colls. Es können beliebig viele Elemente übergeben werden.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

for (int i: list)
   System.out.println(i);
1
2
3
4
5

Collections.fill(List<T> list, T obj)Methode

Die fill()Methode ersetzt alle Elemente der listSammlung durch das objElement.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);

Collections.fill(list, 10);

for (int i: list)
   System.out.println(i);
10
10
10

Collections.nCopies(int n, T obj)Methode

Die nCopies()Methode gibt eine Liste von nKopien des objElements zurück. Beachten Sie, dass die zurückgegebene Liste unveränderlich ist, was bedeutet, dass Sie sie nicht ändern können! Sie können damit nur Werte lesen:

Code Beschreibung
List<String> immutableList = Collections.nCopies(5, "Hello");

ArrayList<String> list = new ArrayList<String>(immutableList);

for(String s: list)
   System.out.println(s);
Erstellen Sie eine unveränderliche Liste mit 5 HelloZeichenfolgen.
Erstellen Sie eine veränderliche Liste listund füllen Sie sie mit den Werten aus der immutableListListe.

Konsolenausgabe:
Hello
Hello
Hello
Hello
Hello

Collections.replaceAll (List<T> list, T oldValue, T newValue)Methode

Die replaceAll()Methode ersetzt alle Elemente in der listSammlung gleich oldValuedurch newValue.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);

Collections.replaceAll(list, 2, 20);

for (int i: list)
   System.out.println(i);
1
20
3

Collections.copy (List<T> dest, List<T> src)Methode

Die copy()Methode kopiert alle Elemente der srcSammlung in die destSammlung.

Wenn die destSammlung länger beginnt als die Sammlung, bleiben srcdie übrigen Elemente der Sammlung erhalten.dest

Wichtig:
Die destSammlung muss mindestens so lang sein wie die srcSammlung (andernfalls IndexOutOfBoundsExceptionwird ein Testament ausgelöst).
Code Konsolenausgabe
ArrayList<Integer> srcList = new ArrayList<Integer>();
Collections.addAll(srcList, 99, 98, 97);

ArrayList<Integer> destList = new ArrayList<Integer>();
Collections.addAll(destList, 1, 2, 3, 4, 5, 6, 7);

Collections.copy(destList, srcList);

for (int i: destList)
   System.out.println(i);
99
98
97
4
5
6
7


3. Reihenfolge der Elemente

Collections.reverse(List<T> list)Methode

Die reverse()Methode kehrt die Reihenfolge der Elemente der übergebenen Liste um.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

Collections.reverse(list);

for (int i: list)
   System.out.println(i);
5
4
3
2
1

Collections.sort(List<T> list)Methode

Die sort()Methode sortiert die übergebene Liste in aufsteigender Reihenfolge.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

Collections.sort(list);

for (int i: list)
   System.out.println(i);
2
4
11
15
23

Collections.rotate(List<T> list, int distance)Methode

Die rotate()Methode verschiebt die Elemente der übergebenen Liste zyklisch um distancePositionen nach vorne.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7, 8, 9);

Collections.rotate(list, 3); // Shift by 3 positions

for (int i: list)
   System.out.println(i);
7
8
9
1
2
3
4
5
6

Collections.shuffle(List<T> list)Methode

Die shuffle()Methode mischt alle Elemente der übergebenen Liste zufällig. Das Ergebnis ist jedes Mal anders.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

Collections.shuffle(list); // Shuffle the elements

for (int i: list)
   System.out.println(i);
5
2
4
3
1


4. Elemente in Sammlungen finden

Collections.min(Collection<T> colls)Methode

Die min()Methode gibt das minimale Element in der Sammlung zurück.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

int min = Collections.min(list);

System.out.println(min);
2

Collections.max(Collection<T> colls)Methode

Die max()Methode gibt das maximale Element in der Sammlung zurück.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

int max = Collections.max(list);

System.out.println(max);
23

Collections.frequency(Collection<T> colls, T obj)Methode

Die frequency()Methode zählt, wie oft das objElement in der collsSammlung vorkommt

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15, 4, 2, 4);

int count = Collections.frequency(list, 4);

System.out.println(count);
3

Collections.binarySearch(Collection<T> colls, T obj)Methode

Die binarySearch()Methode sucht nach dem objElement in der collsSammlung. Gibt den Index des gefundenen Elements zurück. Gibt eine negative Zahl zurück, wenn das Element nicht gefunden wird.

Wichtig:
Vor dem Aufruf der binarySearch()Methode muss die Sammlung sortiert werden (verwenden Collections.sort()).
Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 5, 15, 4, 2, 4);

Collections.sort(list);  // 2, 2, 4, 4, 5, 11, 15, 23

int index = Collections.binarySearch(list, 5);    // 4
System.out.println(index);

int index2 = Collections.binarySearch(list, 15);  // 6
System.out.println(index2);

int index3 = Collections.binarySearch(list, 16); // The element doesn't exist
System.out.println(index3);
4
6
-8

Collections.disjoint(Collection<T> coll1, Collection<T> coll2)Methode

Die disjoint()Methode gibt zurück true, wenn die übergebenen Sammlungen keine gemeinsamen Elemente haben.

Code Konsolenausgabe
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7);

ArrayList<Integer> list2 = new ArrayList<Integer>();
Collections.addAll(list2, 99, 98, 97);

boolean isDifferent = Collections.disjoint(list, list2);
System.out.println(isDifferent);
true