ArrayList、LinkedList、Vector的区别。
生活随笔
收集整理的這篇文章主要介紹了
ArrayList、LinkedList、Vector的区别。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LinkedList與其他二者的區別
首先,LinkedList是相對于其他兩個最大不同的,因為底層實現就完全不是一種思路。
ArrayList,Vector 的底層實現是擴容數組,而LinkedList的底層實現是雙向鏈表。具體源碼解析請看我的這篇博客:
ArrayList和LinkedList的源碼解析
tip:由于LinkedList 是雙向鏈表,可以用來代替過時的Stack類.
Vector是線程安全的線性表。
乍一看,ArrayList與Vector并無區別,都是擴容數組實現,但是在Vector的源碼中有“synchronized”的存在,所以我們可以說Vector是唯一的線程安全的線性表.
tip:
線程安全的集合有:V!SHE:Vector(ArrayList),StringBuffer(StringBuilder),Hashtable(HashMap),Enumeration
括號內的為對應的線程不安全的版本.一般情況下使用線程不安全的版本,因為線程安全需要付出效率上的代價。
Arraylist則是正常的線性表
ArrayList,Vector是擴容線性表,默認容量都為10,擴容方法稍微有些不同。線程不安全.
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/guodao/p/9702387.html
總結
以上是生活随笔為你收集整理的ArrayList、LinkedList、Vector的区别。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bzoj2049 [Sdoi2008]C
- 下一篇: cache工作的详细过程