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

posted @ 2021-03-17 23:52  zjcfrancis  阅读(615)  评论(0编辑  收藏  举报