1. Analyse à partir de la structure des données de stockage
(tutoriel recommandé : tutoriel d'introduction Java)
ArrayList : Array
Vector : Array
LinkedList : Liste doublement chaînée
Array : Il peut être recherché rapidement en fonction de l'indice, donc dans la plupart des cas, la requête est rapide.
Cependant, si vous souhaitez effectuer des opérations d'ajout et de suppression, vous devrez déplacer tous les éléments derrière l'élément modifié, de sorte que la surcharge des ajouts et des suppressions est relativement importante, et l'efficacité d'exécution de l'ajout et les opérations de suppression du tableau sont faibles. ArrayList et Vector, qui utilisent des tableaux comme structures de stockage de données, ont également ces caractéristiques. La vitesse de requête est rapide (peut être récupérée directement en fonction de l'indice, ce qui est plus rapide que la recherche itérative), et l'ajout et la suppression sont lents.
Liste chaînée : il est pratique d'ajouter et de supprimer des éléments. Pour ajouter ou supprimer un élément, il vous suffit de gérer les références entre les nœuds. Tout comme les personnes se tenant la main d'affilée, si vous souhaitez ajouter ou supprimer quelqu'un, il vous suffit de changer les deux personnes à proximité pour qu'elles se tiennent la main avec une autre personne, et cela n'aura aucun effet sur les personnes qui se tiennent déjà la main. Les ressources et le temps consommés par la substitution sont les mêmes quel que soit l'endroit.
Mais il n'est pas pratique de rechercher. Il doit être comparé un par un, et il ne peut pas être recherché directement en fonction de l'indice. LinkedList, qui est stockée dans une structure de liste chaînée, présente également ces caractéristiques. Elle est facile à ajouter et à supprimer, mais lente à interroger (en référence à une requête aléatoire et non à une requête séquentielle).
2. Analyse du point de vue de l'héritage
Ils implémentent tous l'interface List, ce qui signifie qu'ils implémentent tous get(int location ), remove(int location) et d'autres "fonctions pour obtenir et supprimer des nœuds en fonction des valeurs d'index".
(Tutoriel vidéo recommandé : Tutoriel vidéo Java )
Il est facile d'obtenir la valeur de la structure du tableau en fonction de l'indice et de l'implémentation de la LinkedList bidirectionnelle list est également relativement simple, en comptant la valeur de l'index. Pour implémenter, la recherche commence à partir de la moitié de la longueur de la liste chaînée. Si l'indice est plus grand, la recherche commencera à partir de la tête de la liste. commencera la recherche à partir de la fin de la liste.
3. Analyse du point de vue de la sécurité de la concurrence
Vecteur : sécurité des threads
ArrayList : sécurité des non-threads
LinkedList : Sécurité sans thread
4. Analyse de la croissance des données
Vecteur : Par défaut, la croissance est doublée par la longueur d'origine du tableau. En parlant de défaut, cela signifie qu'il peut définir la taille d'initialisation indépendamment.
ArrayList : agrandit automatiquement de 50 % le tableau d'origine.
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!