优秀的编程知识分享平台

网站首页 > 技术文章 正文

Java中Vector和ArrayList的区别(vector和arraylist的主要区别)

nanyue 2024-08-12 22:29:04 技术文章 14 ℃

ArrayList中:


public boolean add(E e) {
 
 ensureCapacity(size + 1); // 增加元素,判断是否能够容纳。不能的话就要新建数组
 
 elementData[size++] = e;
 
 return true;
 
}
 
 public void ensureCapacity(int minCapacity) {
 
 modCount++; 
 
 int oldCapacity = elementData.length;
 
 if (minCapacity > oldCapacity) {
 
 Object oldData[] = elementData; // 此行没看出来用处,不知道开发者出于什么考虑
 
 int newCapacity = (oldCapacity * 3)/2 + 1; // 增加新的数组的大小
 
 if (newCapacity < minCapacity)
 
 newCapacity = minCapacity;
 
 // minCapacity is usually close to size, so this is a win:
 
 elementData = Arrays.copyOf(elementData, newCapacity);
 
 }
 
}

Vector中:


private void ensureCapacityHelper(int minCapacity) {
 
 int oldCapacity = elementData.length;
 
 if (minCapacity > oldCapacity) {
 
 Object[] oldData = elementData;
 
 int newCapacity = (capacityIncrement > 0) ?
 
 (oldCapacity + capacityIncrement) : (oldCapacity * 2);
 
 if (newCapacity < minCapacity) {
 
 newCapacity = minCapacity;
 
 }
 
 elementData = Arrays.copyOf(elementData, newCapacity);
 
 }
 
}

关于ArrayList和Vector区别如下:

ArrayList在内存不够时默认是扩展50% + 1个,Vector是默认扩展1倍。

Vector提供indexOf(obj, start)接口,ArrayList没有。

Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销。

点击获取资料

最近发表
标签列表