首页 > 其他分享 >ArrayList、LinkedList

ArrayList、LinkedList

时间:2024-06-08 16:22:49浏览次数:15  
标签:LinkedList 删除 ArrayList 元素 链表 内存

区别

  • ArrayList是实现了基于数组的数据结构,内存连续;LinkedList是基于链表结构。
  • 对于随机访问的getset方法查询元素,ArrayList要优于LinkedList,因为LinkedList循环链表寻找元素。
  • 对于新增和删除操作addremoveLinkedList比较高效,因为ArrayList要移动数据。

优缺点

  • ArrayListLinkedList访问速度快体现在随机访问,ArrayList因为内存连续,且具有有序索引下标,因此只需要根据下标就能快速找到对应元素;LinkedList因为内存不连续,在随机访问中要一个元素一个元素的遍历来获取对应的元素。
  • ArrayList集合中添加或者删除一个元素时,当前的列表移动元素后面所有的元素都会被移动。而LinkedList集合中添加或者删除一个元素的开销是固定的。

应用场景

ArrayList使用在查询比较多,但是插入和删除比较少的情况,而LinkedList用在查询比较少而插入删除比较多的情况。

标签:LinkedList,删除,ArrayList,元素,链表,内存
From: https://www.cnblogs.com/zhengbiyu/p/18238716

相关文章

  • java:数组和集合(例如ArrayList)的对比
    问题:为什么java里有了array还要有arrayList?(相类比的:python里只有list没有array)答案:因为arrayList是对array的补充,更灵活实用。数组和arrayList都是一维的,但数组可以通过下标直接访问,arrayList只能通过遍历访问;数组能存储基本类型和对象,arrayList只能存对象;数组长度不可变,array......
  • 集合类源码浅析のArrayList
    源码分析路线图:初级部分:ArrayList->LinkedList->Vector->HashMap(红黑树数据结构,如何翻转,变色,手写红黑树)->ConcurrentHashMap中级部分:Spring->SpringMVC->SpringBoot->Mybatis核心类源码高级部分:中间件源码(有生之年系列)第一篇,从最简单的ArrayList入手分析1、成员变量......
  • 数据结构第一篇【探究List和ArrayList之间的奥秘 】
    数据结构第一篇【探究List和ArrayList之间的奥秘】前言List什么是List?ListArrayListArrayList使用ArrayList常见操作ArrayList的遍历ArrayList的扩容机制ArrayList的具体使用前言......
  • 【初探Java之路 六 】集合1-ArrayList和LinkedList的使用与源码分析
    ......
  • 揭秘Java LinkedList:深度剖析、实战应用与设计灵感
    1.概述Java的LinkedList是java.util包下的一个类,它实现了List接口,并且提供了基于双向链表的数据结构。这意味着LinkedList中的元素可以按照它们的插入顺序进行有序的集合。由于其双向链表的特性,LinkedList在插入、删除元素时具有优秀的性能表现,而在访问元素时则相对较慢(尤......
  • Doug Lea大师的佳作CopyOnWriteArrayList,用不好能坑死你!
    一、写在开头我们在学习集合或者说容器的时候了解到,很多集合并非线程安全的,在并发场景下,为了保障数据的安全性,诞生了并发容器,广为人知的有ConcurrentHashMap、ConcurrentLinkedQueue、BlockingQueue等,那你们知道ArrayList也有自己对应的并发容器嘛?作为使用频率最高的集合类之一,A......
  • ArrayList和LinkedList区别
    底层数据结构ArrayList是动态数组的数据结构实现。LinkedList是双向链表的数据结构实现。效率下标査询ArrayList按照下标査询的时间复杂度O(1)。LinkedList不支持下标查询。查找(未知索引)ArrayList需要遍历,链表也需要链表,时间复杂度都是O(n)。新增和删除ArrayL......
  • 【java】【集合类】ArrayList扩容机制
    扩容规则1.ArrayList()无参构造扩容2.ArrayList(intinitialCapacity)扩容3.publicArrayList(Collection<?extendsE>c)扩容4.add(Objecto)扩容5.addAll(Collectionc)扩容要注意的是,以下所有代码中用反射方式来更直观地反映ArrayList的扩容特征,但从JDK9由于模......
  • ArrayList in C#
    https://dotnettutorials.net/lesson/arraylist-collection-csharp/c#中的数组列表是什么?c#中的ArrayList是一个非泛型集合类,它的工作方式类似于数组,但提供了动态调整大小、从集合中间添加和删除元素等功能。c#中的ArrayList可以用来添加未知数据,也就是说,当我们不知道数据的类型......
  • 【java】ArrayList和LinkedList的区别
    一、ArrayList和LinkedList的相同点ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用,他们都可以对元素的增删改查进行操作。ArrayList、LinkedList、Vector和Stack是List的四个实现类,List是一个接口,它继承与Collection接口,代表有序的队列。其中Vector......