這篇文章主要透過實例對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中文網其他相關文章!