Maison >Java >javaDidacticiel >Détails graphiques comparant ArrayList et LinkedList en Java
Cet article compare principalement ArrayList et LinkedList en Java à travers des exemples. Les amis dans le besoin peuvent s'y référer
ArrayList et LinkedList sont deux méthodes d'implémentation courantes de l'interface Collection, et elles utilisent différentes stratégies de stockage pour s'adapter aux besoins des différentes situations.
Méthode d'implémentation
ArrayList utilise en interne des collections pour stocker des données
La seule chose qui doit être notée est celui de la logique de traitement pour la capacité dépassant le seuil. La capacité par défaut du tableau est de 10 et la capacité maximale est Integer.Max_Value. Si la capacité maximale est dépassée, une exception de dépassement de mémoire sera levée
Le mécanisme d'expansion est illustré ci-dessous
La capacité étendue est 1,5 fois la capacité d'origine La mise en œuvre de LinkedListUtilise en interne la classe interne de nœud de liste doublement chaînée pour stocker les données. En raison de l'utilisation d'une liste doublement chaînée, LinkedList peut également être utilisée comme pile et file d'attente, mais l'efficacité est relativement faible. implémentation d'ArrayDeqeue.
Comparaison des performances
En termes d'efficacité d'insertion de queue, il n'y a pas beaucoup de différence entre les deux, mais LinkedList doit maintenir une relation de liste doublement chaînée, toute l'efficacité du stockage sera légèrement inférieure à celle d'ArrayList Le temps d'ArrayList est principalement consacré à l'expansion de la capacité et à la migration des données si nous initialisons la capacité en même temps. , ça devrait être OK Il y a place à l'amélioration. Comparons-le à nouveau. Il y a une marge d'amélioration terrifiante de 50 % L'avantage de Linked est l'efficacité de l'insertion de la tête. . Il vous suffit de modifier l'élément head. Les pointeurs peuvent le faire, mais le tableau doit toujours déplacer les données suivantes, et l'efficacité est bien inférieure à LinkedList Pour get. et les opérations d'ensemble, la recherche binaire est effectuée dans la liste chaînée. Les tableaux peuvent accéder directement aux éléments via des indices, donc l'efficacité est supérieure à LinkedListSur la base de ce qui précède. Par comparaison, nous pouvons essentiellement déterminer que si est simplement stocké. Dans le cas d'une simple itération de données, nous utilisons généralement des collections pour être plus efficaces
doit être utilisé
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!