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的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归的经典题目总结
- 下一篇: linux中生成考核用的FAT32文件系