ArrayList 和 LinkedList 的区别


  1.  ArrayList 实现了基于动态数组的数据结构,LinkedList 是基于链表的数据结构。

  2.  对于随机访问 get 和 set,ArrayList 优于 LinkedList,因为 LinkedList 要移动指针(如 get 的时间复杂度分别为O(1)和O(n))。

  3.  对于新增和删除操作 add 和 removeLinedList 占优势,因为 ArrayList 要移动数据。

  4.  ArrayList 在使用的时候默认的初始化数组的长度为10,如果空间不足则会采用2倍的形式进行容量的扩充

    如果保存大数据的时候有可能造成垃圾的产生以及性能的下降,这个时候就可以用 LinkedList 子类保存.

  5.  ArrayList 的空间浪费主要体现在在 list 列表的结尾预留一定的容量空间,而 LinkedList 则体现在它的每一个元素都需要消耗相当的空间.

  总结:

    当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用 ArrayList 会提供比较好的性能;

    当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用 LinkedList


免责声明!

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



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