1. Liste des méthodes

Rappelez-vous que les créateurs de Java ont écrit toute une classe d'assistance appelée Arrayspour notre commodité lorsque nous travaillons avec des tableaux ?

Ils ont fait la même chose pour les collections. Java a une java.util.Collectionsclasse qui contient de nombreuses méthodes utiles pour travailler avec des collections. Voici juste les plus intéressants :

Méthodes Description
addAll(colls, e1, e2, e3, ...)
Ajoute les éléments e1, e2, e3, ... à la collscollection
fill(list, obj)
Remplace tous les éléments de la liste transmise parobj
nCopies(n, obj)
Renvoie une liste de ncopies de l' objobjet
replaceAll(list, oldVal, newVal)
Remplace toutes les instances de oldValpar newValdans la listliste
copy(dest, src)
Copie tous les éléments de la srcliste dans la destliste
reverse(list)
Inverse la liste.
sort(list)
Trie la liste par ordre croissant
rotate(list, n)
Décale cycliquement les éléments de la listliste par néléments
shuffle(list)
Mélange aléatoirement les éléments de la liste
min(colls)
Trouve l'élément minimum dans la collscollection
max(colls)
Trouve le maximum d'éléments dans la collscollection
frequency(colls, obj)
Détermine combien de fois l' objélément apparaît dans la collscollection
binarySearch(list, key)
Recherche keydans une liste triée et renvoie l'index correspondant.
disjoint(colls1, colls2)
Renvoie truesi les collections n'ont aucun élément en commun
Important:

Beaucoup de ces méthodes n'utilisent pas les classes ArrayList, HashSetet HashMapen elles-mêmes, mais avec les interfaces correspondantes : Collection<T>, List<T>, Map<K, V>.

Ce n'est pas un problème : si une méthode accepte un List<T>, vous pouvez toujours lui passer un ArrayList<Integer>, mais l'opérateur d'affectation ne fonctionne pas dans le sens opposé.


2. Créer et modifier des collections

Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)méthode

La addAll()méthode ajoute les éléments e1, e2, e3, ... à la collscollection N'importe quel nombre d'éléments peut être passé.

Code Sortie console
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)méthode

La fill()méthode remplace tous les éléments de la listcollection par l' objélément.

Code Sortie console
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)méthode

La nCopies()méthode renvoie une liste de ncopies de l' objélément. Notez que la liste renvoyée est immuable, ce qui signifie que vous ne pouvez pas la modifier ! Vous ne pouvez l'utiliser que pour lire des valeurs :

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

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

for(String s: list)
   System.out.println(s);
Créez une liste immuable de 5 Hellochaînes
Créez une variable mutable listet remplissez-la avec les valeurs de la immutableListliste.

Sortie console :
Hello
Hello
Hello
Hello
Hello

Collections.replaceAll (List<T> list, T oldValue, T newValue)méthode

La replaceAll()méthode remplace tous les éléments de la listcollection égale à oldValuepar newValue.

Code Sortie console
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)méthode

La copy()méthode copie tous les éléments de la srccollection dans la destcollection.

Si la destcollection commence plus longtemps que la srccollection, les éléments restants de la destcollection resteront intacts.

Important:
La destcollection doit être au moins aussi longue que la srccollection (sinon, un an IndexOutOfBoundsExceptionsera lancé).
Code Sortie console
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. Ordre des éléments

Collections.reverse(List<T> list)méthode

La reverse()méthode inverse l'ordre des éléments de la liste passée.

Code Sortie console
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)méthode

La sort()méthode trie la liste transmise par ordre croissant.

Code Sortie console
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)méthode

La rotate()méthode décale cycliquement les éléments de la liste transmise par distancepositions vers l'avant.

Code Sortie console
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)méthode

La shuffle()méthode mélange aléatoirement tous les éléments de la liste transmise. Le résultat est différent à chaque fois.

Code Sortie console
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. Trouver des éléments dans les collections

Collections.min(Collection<T> colls)méthode

La min()méthode renvoie l'élément minimum de la collection.

Code Sortie console
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)méthode

La max()méthode renvoie le maximum d'éléments dans la collection.

Code Sortie console
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)méthode

La frequency()méthode compte le nombre de fois que l' objélément apparaît dans la collscollection

Code Sortie console
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)méthode

La binarySearch()méthode recherche l' objélément dans la collscollection. Renvoie l'index de l'élément trouvé. Renvoie un nombre négatif si l'élément n'est pas trouvé.

Important:
Avant d'appeler la binarySearch()méthode, la collection doit être triée (utilisez Collections.sort()).
Code Sortie console
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)méthode

La disjoint()méthode retourne truesi les collections passées n'ont aucun élément en commun.

Code Sortie console
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