ArrayList
1搞挣、ArrayList 是一個數(shù)組隊列,相當于動態(tài)數(shù)組音羞,為線程不安全囱桨。
2、繼承了AbstractList嗅绰,實現(xiàn)了List蝇摸,提供了添加、刪除办陷、修改、遍歷等功能律歼。
3民镜、實現(xiàn)了RandmoAccess接口,提供了隨機訪問功能险毁。
4制圈、ArrayList通過一個數(shù)組去保存數(shù)據(jù)的们童,默認容量大小是10,當ArrayList容量不足以容納全部元素時鲸鹦,ArrayList會重新設(shè)置容量:新的容量=“(原始容量x3)/2 + 1”慧库。
LinkedList
1、LinkedList 是一個繼承于AbstractSequentialList的雙向鏈表馋嗜,提供了隨機訪問功能齐板,順序訪問會非常高效,而隨機訪問效率比較低葛菇。甘磨,它也可以被當作堆棧、隊列或雙端隊列進行操作眯停,為線程不安全济舆。
2、實現(xiàn)了List莺债,提供了添加滋觉、刪除、修改齐邦、遍歷等功能椎侠。
3、實現(xiàn)Deque接口侄旬,即能將LinkedList當作雙端隊列使用肺蔚。
4、索引的原理是比較“l(fā)ocation”和“雙向鏈表長度的1/2”儡羔;若前者大宣羊,則從鏈表頭開始往后查找,直到location位置汰蜘;否則仇冯,從鏈表末尾開始先前查找,直到location位置族操。
Vector
Vector與ArrayList一樣苛坚,也是通過數(shù)組實現(xiàn)的,不同的是它支持線程的同步色难,即某一時刻只有一個線程能夠?qū)慥ector泼舱,避免多線程同時寫而引起的不一致性,但實現(xiàn)同步需要很高的花費枷莉,因此娇昙,訪問它比訪問ArrayList慢。
總結(jié):
ArrayList 是一個數(shù)組隊列笤妙,相當于動態(tài)數(shù)組冒掌。它由數(shù)組實現(xiàn)噪裕,隨機訪問效率高,隨機插入股毫、隨機刪除效率低膳音。
LinkedList 是一個雙向鏈表。它也可以被當作堆棧铃诬、隊列或雙端隊列進行操作祭陷。LinkedList隨機訪問效率低,但隨機插入氧急、隨機刪除效率高颗胡。
Vector 是矢量隊列,和ArrayList一樣吩坝,它也是一個動態(tài)數(shù)組毒姨,由數(shù)組實現(xiàn)。但是ArrayList是非線程安全的钉寝,而Vector是線程安全的弧呐。