ArrayList和LinkedList的介紹以及區別

ArrayList

ArrayList:底層是動態數組ArrayList默認初始大小爲10,默認擴容大小爲1.5倍。數組

線程不安全。因此ArrayList的出現替代了Vector,可是查詢的速度很快,增長和刪除很是慢。安全

這個是由於ArrayList的增長和刪除須要新創建一個數組去實現,就把定義一個新集合,把要增長的元素添加在新集合相應的位置之後,再把原來的舊集合內的元素複製過來,而後再返回新集合的地址,刪除和添加的步驟差很少。數據結構

LinkedList

LinkedList:底層結構是鏈表數據結構,LinkedList將元素添加到鏈表的末尾,無須擴容spa

線程不安全的,同時對元素的增刪操做效率很高。線程

LinkedList 採用的將對象存放在獨立的空間中,並且在每一個空間中還保存下一個連接的索引  ,可是缺點就是查找很是麻煩 、對象

要叢第一個索引開始而後依次向後去查找、直到找到所查找的元素。索引

  • 使用:
  • 若是查詢多,增刪少數組的特性,建議用ArrayList。
  • 若是查詢少,增刪多,建議用LinkedList。
相關文章
相關標籤/搜索