Sobes.tech
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 de Vector, 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)