ArrayList
ArrayList:底層是動態數組,ArrayList默認初始大小爲10,默認擴容大小爲1.5倍。數組
線程不安全。因此ArrayList的出現替代了Vector,可是查詢的速度很快,增長和刪除很是慢。安全
這個是由於ArrayList的增長和刪除須要新創建一個數組去實現,就把定義一個新集合,把要增長的元素添加在新集合相應的位置之後,再把原來的舊集合內的元素複製過來,而後再返回新集合的地址,刪除和添加的步驟差很少。數據結構
LinkedList
LinkedList:底層結構是鏈表數據結構,LinkedList將元素添加到鏈表的末尾,無須擴容spa
線程不安全的,同時對元素的增刪操做效率很高。線程
LinkedList 採用的將對象存放在獨立的空間中,並且在每一個空間中還保存下一個連接的索引 ,可是缺點就是查找很是麻煩 、對象
要叢第一個索引開始而後依次向後去查找、直到找到所查找的元素。索引
- 使用:
- 若是查詢多,增刪少; 數組的特性,建議用ArrayList。
- 若是查詢少,增刪多,建議用LinkedList。