LinkedList 和 ArraryList的區別. <java>

來源:互聯網
上載者:User

標籤:link   nbsp   remove   動態數組   lin   ext   行儲存   刪除元素   element   

LinkedList是用動態鏈表進行儲存的,而ArrayList是動態數組儲存的。

一、如果對數組進行查詢、設定等操作,用ArrayList比較快,方法為get()和set()。

二、如果對資料進行增加、移動等操作,用LinkedList比較快,方法有大的()和remove()。

LinkedList裡面有一個私人類,如下:

private static class Entry {   

         Object element;       //元素值

         Entry next;           //下一個指標地址

         Entry previous;    //上一個指標地址

     } 

當新增加或刪除元素時將最後一個的指標的Entry next指到新位置,將新添元素的指標Entry previous指到最後一個元素就可以了。但因為總要儲存前後指標,所以對記憶體存在一定量的浪費。

而對於ArrayList,會涉及到資料的移動,特別是在增加或刪除第一個元素,那麼剩餘的所有數組都會進行移動。增加同時有可能會造成數組擴容,每次擴容大約為50%,公式為新總容量=(3*舊容量)/2+1。

三、LinkedList不支援高效的隨機元素訪問。

 

LinkedList 和 ArraryList的區別. <java>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.