ArrayList 与 Vector 的区别和适用场景

2021-04-28  本文已影响0人  多仔百事宅

ArrayList 有三个构造方法

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

Vector 有四个构造方法

//使用指定的初始容量和等于零的容量增量构造一个空向量
public Vector() 
//构造一个空向量,使其内部数据数组的大小,其标准容量增量为零。
public Vector(int initialCapacity) 
//构造一个包含指定 collection 中的元素的向量
public Vector(Collection<? extends E> c)
//使用指定的初始容量和容量增量构造一个空的向量
public Vector(int initialCapacity, int capacityIncrement)
ArrayList 和 Vector 都是用数组实现的主要有这么四个区别:
  1. Vector 是多线程安全的,线程安全就是说多线程访问代码,不会产生不确定的结果。而 ArrayList 不是,这可以从源码中看出,Vector 类中的方法很多有 synchronied 进行修饰,这样就导致了 Vector 在效率上无法与 ArrayLst 相比;
  2. 两个都是采用的线性连续空间存储元素,但是当空间充足的时候,两个类的增加方式是不同。
  3. Vector 可以设置增长因子,而 ArrayList 不可以。
  4. Vector 是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。
适用场景:
上一篇 下一篇

猜你喜欢

热点阅读