Maison >Java >JavaBase >Quelles sont les collections Java ?

Quelles sont les collections Java ?

angryTom
angryTomoriginal
2019-11-14 10:10:403468parcourir

Quelles sont les collections Java ?

Que sont les collections Java ?

Les classes de collection utilisées dans l'API Java implémentent toutes l'interface Collection La classe. structure d'héritage de 🎜>Collection

Collection

Collection

Vecteur

1) La structure de données sous-jacente est un tableau, rapide à interroger mais lent à ajouter et à supprimer

Quelles sont les collections Java ?2 ) Thread-safe et faible efficacité

La liste basée sur Array encapsule en fait certaines fonctions que Array n'a pas pour notre utilisation. Elle ne peut pas tomber dans les limites d'Array. Il est impossible de surpasser Array en termes de performances. Par conséquent, dans la mesure du possible, nous devrions utiliser davantage Array. Un autre point très important est que Vector est "synchronisé", ce qui est aussi la seule différence entre Vector et ArrayList.

ArrayList

1). La structure de données sous-jacente est un tableau, rapide à rechercher et lent à ajouter et à supprimer.

2) Thread dangereux et très efficace

Comme Vector, il s'agit d'une liste chaînée basée sur Array, mais la différence est qu'ArrayList n'est pas synchronisé. Par conséquent, il est supérieur à Vector en termes de performances, mais lors de l'exécution dans un environnement multithread, vous devez gérer vous-même la synchronisation des threads.

LinkedList

1) La structure de données sous-jacente est une liste chaînée, lente à interroger et rapide à ajouter et à supprimer


2) Thread-dangereux et haute efficacité

LinkedList est différente des deux listes précédentes. Elle n'est pas basée sur Array, elle n'est donc pas limitée par les performances de Array. Chaque nœud (Node) contient deux aspects de contenu : 1 Les données du nœud lui-même (data) ;

2. Les informations du nœud suivant (nextNode). Par conséquent, lors de l’ajout et de la suppression d’actions dans une LinkedList, il n’est pas nécessaire de déplacer une grande quantité de données comme une liste basée sur un tableau. Modifiez simplement les informations pertinentes de nextNode et vous pouvez y parvenir. C'est l'avantage de LinkedList.

Collection de hashset :

1) La structure de données sous-jacente est une table de hachage, qui s'appuie sur deux méthodes hascode () et égal à ()

2) L'ordre d'exécution des deux méthodes :

Déterminez d'abord si les valeurs hascode() sont les mêmes Oui : continuez à exécuter la méthode equals() et voyez son retour value

Oui vrai : Cela signifie que les éléments sont répétés et

n'est pas ajouté Faux : Ajoutez simplement l'élément

Non : Ajoutez-le simplement directement au. collection

Collection d'arbres :

1) La structure de données sous-jacente est un arbre binaire

Résumé :

1. Toutes les listes ne peuvent contenir qu'une seule table composée d'objets de différents types, plutôt que de paires clé-valeur. Par exemple : [ tom,1,c ];

2. Toutes les listes peuvent avoir les mêmes éléments, par exemple, Vector peut avoir [ tom,koo,too,koo ] ; . Toutes les listes peuvent avoir des éléments nuls, tels que [tom,null,1]

4. La liste basée sur un tableau (Vector, ArrayList) convient à la requête, tandis que la LinkedList (liste liée) convient à l'ajout. et les opérations de suppression. HashSet : bien que Set et List implémentent tous deux l'interface Collection, leurs méthodes d'implémentation sont assez différentes. La liste est essentiellement basée sur Array. Mais Set est implémenté sur la base de HashMap. C'est la différence fondamentale entre Set et List. La méthode de stockage de HashSet consiste à utiliser la clé dans HashMap comme élément de stockage correspondant de Set.

Site Web php chinois, un grand nombre de

Tutoriels d'introduction à Java

gratuits, bienvenue pour apprendre en ligne !

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn