Java并发编程之:Vector和ArrayList的区别
生活随笔
收集整理的这篇文章主要介绍了
Java并发编程之:Vector和ArrayList的区别
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2019独角兽企业重金招聘Python工程师标准>>>
Java中Vector和ArrayList的区别
首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:
查看Java源代码,发现当数组的大小不够的时候,需要重新建立数组,然后将元素拷贝到新的数组内,ArrayList和Vector的扩展数组的大小不同。
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区别如下:
vector 不建议使用 只保证了线程间访问安全,却很大程度丧失了并发的性能。
转载于:https://my.oschina.net/LucasZhu/blog/995829
总结
以上是生活随笔为你收集整理的Java并发编程之:Vector和ArrayList的区别的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 递归的经典题目总结
- 下一篇: Oracle:推迟了的Java Ente