La différence entre ArrayList, Vector, LinkedList

1. ArrayList et Vector implémentent tous deux l'interface List, qui sont tous deux implémentés via des tableaux.
Le vecteur est thread-safe (synchronisation quand absolument la plupart des méthodes sont utilisées), tandis que ArrayList n'est pas thread-safe.
Lorsque la liste est créée pour la première fois, il y aura une taille initiale. Avec l'ajout continu d'éléments à la liste, la liste s'agrandit lorsqu'elle pense que la capacité n'est pas suffisante. Par défaut, Vector augmente automatiquement la longueur du tableau d'origine du double et ArrayList augmente de 50%.
2.
Différence La
couche inférieure d'ArrayList est réalisée par tableau. Vous pouvez considérer ArrayList comme un tableau de taille variable. À mesure que de plus en plus d'éléments sont ajoutés à ArrayList, sa taille augmente dynamiquement.
La couche inférieure de LinkedList est réalisée par une liste doublement liée. Comparée à ArrayList, LinkedList a une vitesse d'ajout et de suppression plus rapide. Mais la vitesse d'interrogation et de modification des valeurs est lente. Dans le même temps, LinkedList implémente également l'interface Queue, il fournit donc également des méthodes telles que offer (), peek (), poll (). Le thread LinkedList n'est pas sûr.
Le scénario d'utilisation
LinkedList est plus adapté à l'insertion ou à la suppression du milieu (les caractéristiques de la liste chaînée).
ArrayList est plus approprié pour la récupération et l'insertion ou la suppression à la fin (caractéristique du tableau).
Lorsque vous utilisez des conteneurs dans plusieurs threads, utilisez Vector.

Publié 19 articles originaux · louange gagné 5 · Vues 7727

Je suppose que tu aimes

Origine blog.csdn.net/qq_38119372/article/details/81170622
conseillé
Classement