1. Qu'est-ce qu'un conteneur
En Java, il existe une classe spécifiquement utilisée pour stocker des objets de autres classes. , cette classe est appelée un conteneur, qui est un tout formé en combinant plusieurs objets de classe avec des propriétés identiques ou similaires.
Introduction à plusieurs conteneurs courants :
Tutoriels vidéo d'apprentissage Java recommandés : Vidéo d'enseignement Java
1. Liste
Une collection ordonnée (également appelée séquence). Les utilisateurs de cette interface ont un contrôle précis sur l'endroit où chaque élément de la liste est inséré. Les utilisateurs peuvent accéder aux éléments en fonction de leur index entier (position dans la liste) et rechercher des éléments dans la liste. Contrairement aux ensembles, les listes autorisent généralement les éléments en double.
Arraylist : tableau d'objets
Vecteur : tableau d'objets
LinkedList : liste doublement chaînée (liste chaînée circulaire avant JDK1.6, JDK1.7 a annulé le cycle)
2. Ensemble
Une collection qui ne contient pas d'éléments en double. Plus précisément, set ne contient aucune paire d'éléments e1 et e2 qui satisfait e1.equals(e2) et contient au plus un élément nul. Comme son nom l’indique, cette interface imite l’abstraction mathématique des ensembles.
HashSet (non ordonné, unique) : basé sur HashMap, la couche inférieure utilise HashMap pour enregistrer les éléments.
LinkedHashSet : LinkedHashSet hérite de HashSet et est implémenté en interne via LinkedHashMap.
LinkedHashMap est implémenté en interne sur la base de Hashmap, mais il existe encore quelques différences.
TreeSet (ordonné, unique) : arbre rouge-noir (arbre binaire trié auto-équilibré).
3. Map
Un objet qui mappe les clés aux valeurs. Une mappe ne peut pas contenir de clés en double ; chaque clé ne peut être mappée qu’à une seule valeur au maximum.
HashMap : avant JDK1.8, HashMap se composait d'un tableau + d'une liste chaînée. Array est le corps principal de HashMap, et la liste chaînée existe principalement pour résoudre les conflits de hachage ("méthode zipper" pour résoudre les conflits). JDK1.8 a apporté des changements majeurs dans la résolution des conflits de hachage. Lorsque la longueur de la liste chaînée est supérieure au seuil (la valeur par défaut est 8), la liste chaînée est convertie en une arborescence rouge-noir pour réduire le temps de recherche
LinkedHashMap : LinkedHashMap Hérité de HashMap, sa couche inférieure est donc toujours basée sur la structure de hachage Zipper, qui est composée de tableaux et de listes chaînées ou d'arbres rouge-noir. De plus, LinkedHashMap ajoute une liste doublement chaînée basée sur la structure ci-dessus, afin que la structure ci-dessus puisse maintenir l'ordre d'insertion des paires clé-valeur. En même temps, en effectuant les opérations correspondantes sur la liste chaînée, la logique liée à la séquence d'accès est mise en œuvre. Hashtable : elle est composée d'un tableau + d'une liste chaînée. Le tableau est le corps principal de HashMap, et la liste chaînée existe principalement pour résoudre les conflits de hachage. TreeMap : arbre rouge-noir (arbre binaire trié à auto-équilibrage)4. Queue
est utilisé pour enregistrer la collection d'éléments avant. les traiter. En plus des opérations de collecte de base, les files d'attente fournissent des opérations supplémentaires d'insertion, d'extraction et d'inspection. Articles et tutoriels connexes recommandés :Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!