Sobes.tech
Junior

Quelles collections existent en Java?

sobes.tech IA

Réponse de l'IA

En Java, il existe les principales interfaces de collections suivantes qui font partie du Java Collections Framework :

  • Collection : Interface de base définissant des opérations communes sur des groupes d'objets. Elle hérite des sous-interfaces :

    • List : Collection ordonnée (séquence). Les éléments peuvent se répéter. Supporte l'accès par index.
      • ArrayList : Tableau dynamique. Bon pour un accès rapide par index et l'ajout à la fin. Lent pour insérer/supprimer au milieu.
      • LinkedList : Liste doublement chaînée. Bon pour insérer/supprimer au début ou à la fin. Lent pour l'accès par index.
      • Vector : Version synchronisée de ArrayList. Considérée comme obsolète.
      • Stack : Hérite de Vector, implémente le comportement de pile (LIFO).
    • Set : Collection contenant uniquement des éléments uniques. Ne garantit pas l'ordre.
      • HashSet : Implémenté avec une table de hachage. Le plus rapide pour ajouter, supprimer et vérifier la présence. Ne garantit pas l'ordre.
      • LinkedHashSet : Implémenté comme une table de hachage + liste chaînée. Garantit l'ordre d'insertion.
      • TreeSet : Implémenté avec un arbre rouge-noir. Stocke les éléments dans un ordre trié. Plus lent que HashSet, mais plus rapide que LinkedHashSet pour les plages de recherche.
    • Queue : Collection conçue pour stocker des éléments avant traitement (FIFO - First-In, First-Out).
      • PriorityQueue : Les éléments sont stockés selon leur ordre naturel ou un comparateur. Le plus prioritaire est extrait.
      • Deque : (Double Ended Queue) Supporte l'insertion et la suppression aux deux extrémités.
        • ArrayDeque : Implémentation de Deque basée sur un tableau. Plus efficace que LinkedList en tant que file/de pile.
  • Map : Collection qui stocke des paires clé-valeur. Les clés sont uniques.

    • HashMap : Implémenté avec une table de hachage. Le plus rapide pour ajouter, supprimer et vérifier la présence. Ne garantit pas l'ordre des clés.
    • LinkedHashMap : Implémenté comme une table de hachage + liste chaînée. Garantit l'ordre d'insertion ou d'accès.
    • TreeMap : Implémenté avec un arbre rouge-noir. Stocke les paires clé-valeur dans un ordre trié par clés. Plus lent que HashMap.
    • HashTable : Version synchronisée de HashMap. Considérée comme obsolète.

Il existe également des classes obsolètes qui ne font pas partie du JCF, mais qui sont parfois rencontrées :

  • Vector
  • Stack
  • Hashtable
  • Enumeration (interface)