La différence entre arraylist et vector

Il existe trois méthodes de construction pour arraylist:

public ArrayList(int initialCapacity)//构造一个具有指定初始容量的空列表。
public ArrayList()//构造一个初始容量为 10 的空列表。
public ArrayList(Collection<? extends E> c)//构造一个包含指定 collection 的元素的列表

Vector a quatre méthodes de construction:

public Vector()//使用指定的初始容量和等于零的容量增量构造一个空向量。
public Vector(int initialCapacity)//构造一个空向量,使其内部数据数组的大小,其标准容量增量为零。
public Vector(Collection<? extends E> c)//构造一个包含指定 collection 中 的元素的向量
public Vector(int initialCapacity,int capacityIncrement)//使用指定的初始容量和容量增量构造一个空的向量

ArrayList et Vector sont tous deux implémentés avec des tableaux. Il existe quatre différences principales:
(1) Vector est sécurisé pour les threads multiples. La sécurité des threads signifie que plusieurs threads accèdent au même code sans générer de résultats incertains.
Et ArrayList ne l'est pas. Cela peut être vu à partir du code source. De nombreuses méthodes de la classe Vector sont
modifiées



par synchronized , ce qui conduit à l'efficacité de Vector ne peut pas être comparée à ArrayList; (2) Les deux utilisent un stockage d'espace continu linéaire. Élément, mais lorsque l'espace est insuffisant, les deux catégories augmentent de manière différente . (3) Vector peut définir le facteur de croissance, mais pas ArrayList. (4) Vector est un ancien tableau dynamique. Il est synchronisé avec les threads et a une faible efficacité. Il est généralement déconseillé de l'utiliser.
Analyse de scénarios d'application:
1) Vector est thread-synchrone, il est donc également thread-safe, tandis qu'ArrayList est thread-asynchronous, ce qui n'est pas sûr.
Si la sécurité des threads n'est pas prise en compte, ArrayList est généralement plus efficace.
2) Si le nombre d'éléments de la collection est supérieur à la longueur du tableau de collection actuel, l'utilisation d'une quantité relativement importante de données dans la collection
, l'utilisation de Vector présente certains avantages.

Je suppose que tu aimes

Origine blog.csdn.net/lthahaha/article/details/114236001
conseillé
Classement