Junior
Parlez de la hiérarchie des collections en Java.
sobes.tech IA
Réponse de l'IA
La hiérarchie des collections en Java est construite autour de deux interfaces racines : Collection et Map. Elle est définie dans le package java.util.
Collection<E>: Interface racine pour la plupart des collections. Représente un groupe d'éléments. Ne garantit pas l'ordre ni l'unicité des éléments.List<E>: Collection ordonnée (séquence). Les éléments ont un indice défini. Peut contenir des doublons.ArrayList<E>: Implémentation basée sur un tableau. Accès rapide, insertions/suppressions lentes au milieu.LinkedList<E>: Implémentation basée sur une liste chaînée. Accès lent, insertions/suppressions rapides au début/fin.Vector<E>: Classe synchronisée obsolète. Semblable àArrayList, mais thread-safe (et moins performante).Stack<E>: Classe obsolète étendantVector, implémente le comportement de pile (LIFO).
Set<E>: Collection contenant des éléments uniques.HashSet<E>: Implémentation basée sur une table de hachage. Non ordonnée. Opérations rapidesadd,remove,contains.LinkedHashSet<E>: Maintient l'ordre d'insertion.SortedSet<E>: Ensemble trié en ordre croissant.TreeSet<E>: Implémentation basée sur un arbre rouge-noir. Garantit un ordre trié.
Queue<E>: Collection conçue pour stocker des éléments avant traitement, souvent en ordre FIFO (First-In, First-Out).PriorityQueue<E>: Implémentation d'une file de priorité. Les éléments sont extraits selon leur priorité.Deque<E>: (File à double terminaison) File bidirectionnelle. Supporte les insertions et extractions des deux extrémités.ArrayDeque<E>: Implémentation deDequebasée sur un tableau dynamique. Plus rapide queLinkedListpour une utilisation comme pile ou file.
Map<K, V>: Objet qui mappe des clés à des valeurs. Les clés sont uniques, les valeurs peuvent se répéter.HashMap<K, V>: Implémentation basée sur une table de hachage. Non ordonnée. Opérations rapidesput,get,remove.LinkedHashMap<K, V>: Maintient l'ordre d'insertion ou d'accès.SortedMap<K, V>: Carte triée par clés.TreeMap<K, V>: Implémentation basée sur un arbre rouge-noir. Garantit un ordre trié par clés.
Hashtable<K, V>: Classe synchronisée obsolète. Semblable àHashMap, mais thread-safe (et moins performante).
Interfaces principales :
| Interface | Description | Ordre | Unicité | Doublons de valeurs |
|---|---|---|---|---|
Collection |
Groupe d'éléments | +/- | +/- | Oui |
List |
Collection ordonnée | Oui | Non | Oui |
Set |
Collection d'éléments uniques | +/- | Oui | Non |
Queue |
Collection pour traitement (FIFO) | Oui | Non | Oui |
Deque |
File bidirectionnelle | Oui | Non | Oui |
Map |
Clé-valeur | +/- | Par clé | Oui |
SortedSet |
Ensemble trié | Oui | Oui | Non |
SortedMap |
Carte triée par clés | Oui | Par clé | Oui |
Exemple d'utilisation :
// Exemple d'utilisation de ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Exemple d'utilisation de HashSet
Set<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(1); // Doublon ignoré
System.out.println(uniqueNumbers.size()); // 2
// Exemple d'utilisation de HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30