Java面試題之ArrayList和LinkedList的區別


先看下類圖:

 

相同點:

  都實現了List接口和Collection;

不同點:

  1、ArrayList是基於數組實現的;LinkedList是基於鏈表實現的;

  2、ArrayList隨機查詢速度快;LinkedList插入和刪除速度快;

原理解析:

  ArrayList是基於數組實現的,他的特性就是可以使用索引來提升查詢效率;插入和刪除數組中某個元素,會導致其后面的元素需要重新調整索引,產生一定的性能消耗;

  LinkedList是基於鏈表實現的,沒有索引,所以查詢效率不高,但是插入和刪除效率卻很高;為什么呢?因為鏈表里插入或刪除某個元素,只需要調整前后元素的引用即可;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM