首頁  >  文章  >  Java  >  java中對比ArrayList與LinkedList的圖文詳情

java中對比ArrayList與LinkedList的圖文詳情

Y2J
Y2J原創
2017-05-03 14:47:031714瀏覽

這篇文章主要透過實例對Java中ArrayList與LinkedList進行了對比,需要的朋友可以參考下

 ArrayList,LinkedList都是Collection介面的通用實作方式,兩者都採用了不用的存儲策略,用來適應不同場合的需要。

實作方式

  ArrayList的內部採用集合的方式儲存資料

唯一需要注意的是對於容量超過閾值的處理邏輯,數組的預設容量大小是10,最大容量是Integer.Max_Value,超過最大容量會拋內存溢出異常,

##擴容機制看下面

擴容後的容量是原有容量的1.5倍

LinkedList的實作方式
內部採用雙向鍊錶Node內部類別來儲存數據,由於採用了雙向鍊錶,LinkedList也可以當作堆疊和佇列來使用,但是效率比較低,Java提供了ArrayDeqeue的高效率實作。

#########效能比較#########在尾部插入效率上面,兩者相差不會太大,但是LinkedList需要維護雙向鍊錶的關係,所有儲存效率上面會略遜於ArrayList###############ArrayList的時間主要耗時在容量擴容,資料遷移上面,如果我們一次初始化容量,應該還可以有提升的空間,再來比較看看,有恐怖的50%的提升空間################Linked的優勢在於頭部插入的效率,只需要修改頭部元素的指標就可以做到,而陣列還需要移動後續的數據,所有效率遠低於LinkedList################對於get,set的操作,鍊錶內部透過二分查找,陣列可以透過下標直接存取元素,所以效率高於LinkedList###################基於上述比較,我們基本上可以確定#######如果只是存放數據,並進行j簡單的迭代情況下,我們一般採用集合的效率最高,######如果涉及到頻繁的修改元素,就應該採用LinkedList###

以上是java中對比ArrayList與LinkedList的圖文詳情的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn