一分钟了解ArrayList和Vector的区别
一、是否是線程安全的
Vector是同步的, 而ArrayList不是.
因為Vector是同步的, 所以它是線程安全的.
同樣, 因為Vecotr是同步的, 所以他需要額外的開銷來維持同步鎖, 所以它要比ArrayList要慢.但僅僅是理論上說,具體測試結(jié)果二者差別十分不明顯
?
二、動態(tài)增加元素的過程
Vector允許用戶設(shè)置capacityIncrement這樣在每次需要擴充數(shù)組的size的時候, Vector會嘗試按照預(yù)先設(shè)置的capacityIncrement作為增量來設(shè)置, 而ArrayList則會把數(shù)組的大小擴大一倍.
比如現(xiàn)在同樣一個長度為10的Vector和ArrayList, 我們把Vector的capacityIncrement設(shè)為1
那么我們在插入第11個對象的時候, Vector會將長度變成11, 然后分配空間, 然后將對象添加進去, 而ArrayList則會分配20個對象的空間, 然后將對象添加進去.
如果capacityIncrement設(shè)為0或者負值, Vector就會做和ArrayList一樣, 每次都將數(shù)組大小擴大一倍.
?
參考自:
http://blog.csdn.net/fzh0803/article/details/6312005
總結(jié)
以上是生活随笔為你收集整理的一分钟了解ArrayList和Vector的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Juniper NetScreen 基于
- 下一篇: C# 合并DLL, 合并DLL进入EX