Junior
Quelles sont les implémentations des collections dans le langage de programmation Java?
sobes.tech IA
Réponse de l'IA
-
Interfaces:
Collection: Interface de base pour toutes les collections.List: Collection ordonnée (avec indices).Set: Collection sans doublons.SortedSet: Collection sans doublons, dont les éléments sont triés.Map: Tableau associatif (clé-valeur).SortedMap: Tableau associatif trié par clés.Queue: Collection pour stocker des éléments avant leur traitement.Deque: File d'attente double.
-
Classes (principales implémentations) :
-
Pour
List:ArrayList: Tableau dynamique. Accès rapide par index, opérations d'insertion/suppression lentes au milieu.LinkedList: Liste doublement chaînée. Accès lent par index, opérations rapides d'insertion/suppression au milieu.Vector: Ancien, synchronisé, équivalent àArrayList.Stack: Sous-classe deVector, implémente une pile (LIFO).
-
Pour
Set:HashSet: Implémentation basée sur une table de hachage. Ne garantit pas l'ordre.LinkedHashSet: Basé sur une table de hachage et une liste liée. Maintient l'ordre d'insertion.TreeSet: Basé sur un arbre rouge-noir. Éléments triés par ordre croissant.
-
Pour
Map:HashMap: Basé sur une table de hachage. Ne garantit pas l'ordre des paires clé-valeur.Hashtable: Ancien, synchronisé, équivalent àHashMap.LinkedHashMap: Basé sur une table de hachage et une liste liée. Maintient l'ordre d'insertion.TreeMap: Basé sur un arbre rouge-noir. Paires triées par clé.
-
Pour
Queue:PriorityQueue: File de priorité. Éléments extraits dans l'ordre naturel ou par un comparateur.ArrayDeque: Implémentation de double-ended queue basée sur un tableau.
-
-
Utilitaires :
Collections: Méthodes statiques pour travailler avec des collections (tri, recherche, synchronisation, etc.).
// Exemple d'utilisation d'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> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Le doublon ne sera pas ajouté
System.out.println(numbers.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
// Exemple d'utilisation de PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (le plus petit)