Java面试题之ArrayList和LinkedList的区别


先看下类图:

 

相同点:

  都实现了List接口和Collection;

不同点:

  1、ArrayList是基于数组实现的;LinkedList是基于链表实现的;

  2、ArrayList随机查询速度快;LinkedList插入和删除速度快;

原理解析:

  ArrayList是基于数组实现的,他的特性就是可以使用索引来提升查询效率;插入和删除数组中某个元素,会导致其后面的元素需要重新调整索引,产生一定的性能消耗;

  LinkedList是基于链表实现的,没有索引,所以查询效率不高,但是插入和删除效率却很高;为什么呢?因为链表里插入或删除某个元素,只需要调整前后元素的引用即可;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM