集合区别(arraylist和linkedlist的区别)?

1.list和linkedlist都是有序可重复,为什么还要用linkedlist呢?

数组和数组列表都有一个重大的缺陷,这就是从数组的中间位置删除一个元素需要付出很大的代价,其原因是数组中处于被删除元素之后的所有元素都要向数组的前端移动。在数组的中间的位置插入一个元素也是如此。如下图:

这个问题就靠LinkedList(链表)来解决。链表将每个对象存放在独立的节点中,每个节点还存放着序列中上一个节点的引用和下一个节点的引用,如下图:

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

   对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

   对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

猜你喜欢

转载自blog.csdn.net/hanglife/article/details/89838898
今日推荐