Cet article étudie principalement les différences entre ArrayList et LinkedList et le contenu pertinent des scénarios d'utilisation dans la programmation Java. Les détails sont les suivants.
1. ArrayList est implémenté en fonction d'un tableau, et son constructeur est:
objet transitoire privé [] elementData; Taille INT privée;
Lorsque ArryList est initialisé, la taille du tableau ElementData est par défaut à 10;
À chaque fois qu'Add (), appelez d'abord Assurecapacity () pour s'assurer que le tableau ne débordera pas. S'il est plein pour le moment, il sera étendu à 1,5 fois + 1 de la longueur du tableau, puis utilisez la méthode Array.Copy pour copier le tableau d'origine sur le nouveau tableau;
Le thread ArrayList n'est pas sûr, la méthode vectorielle est synchrone, filefée;
2. LinkedList est implémenté en fonction des listes à double liaison:
Élément d'objet; Entrée Suivant, précédent;
Pendant l'initialisation, il y a une entrée d'en-tête avec la valeur NULL;
L'avantage de l'utilisation de l'en-tête est qu'il y a une entrée de pré-entrée et une entrée post-entrée dans n'importe quelle entrée (y compris la première et la dernière), il n'y a donc pas d'endroit spécial pour effectuer l'opération d'insertion au début ou à la fin de l'objet LinkedList;
Utilisez des scénarios:
(1) Si l'application effectue un grand nombre d'opérations d'accès ou de suppression sur des éléments à chaque position d'index, l'objet ArrayList est bien meilleur que l'objet LinkedList;
(2) Si l'application boucle principalement la liste et insère ou supprime l'opération pendant le boucle, l'objet LinkedList est bien meilleur que l'objet ArrayList.
Résumer
Ce qui précède est tout le contenu de cet article sur la différence entre ArrayList et LinkedList et l'analyse du code du scénario d'utilisation. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!