ArrayList 和LinkList的区别

作者&投稿:豫习 (若有异议请与网页底部的电邮联系)
~ 一.ArrayList 底层维护的是一个Object数组,默认的元素个数为10,ArrayList的特点是增删慢查询快

1.增加慢的原因:是因为在添加数据的时候,有可能会导致ArrayList底层维护的数组的元素个数不够用,这时候就会调用数组的grow方法进行扩容,而扩容的方法是创建一个新的数组,然后把老数组中的信息复制到新的数组当中,这个拷贝的过程很浪费时间和内存

2.删除慢的原因:因为删除某一个元素,会导致该元素后面的元素进行整体前移,也是一个拷贝的过程,这个拷贝过程非常的浪费时间

3.查询快的原因:ArrayList底层维护的是一个数组,可以通过数组的下标直接查询到数组中的内容,这种方式非常的快。

二.LinkList底层维护的是一个链表,所以LinkList的特点是增删快,查询慢

1.增删快的原因:因为LinkList底层维护的是一个链表,在增删的时候可以直接添加到要添加的位置或者直接删除要删除的部分,对其他部分没有影响,速度非常的快。

2.查询慢的原因:因为LinkList底层维护的是一个链表,查询的时候必须一个一个的进行查询,知道找到匹配的数据为止,这个过程非常的浪费时间。


金水区18023705604: arraylist和linklist的区别 -
伍潘赛莫: 1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.2. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针.3. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要...

金水区18023705604: ArrayList和LinkedList的区别
伍潘赛莫: 一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针. 3.对于新增和删除操作add...

金水区18023705604: arraylist和linkedlist的区别和使用场景 -
伍潘赛莫: 1、ArrayList是基于数组实现的,其构造函数为:private transient Object[] elementData;private int size;ArryList初始化时,elementData数组大小默认为10;每次add()时,先调用ensureCapacity()保证数组不会溢出,如果此时已满,会...

金水区18023705604: ArrayList,LinkedList,Set的区别是什么?
伍潘赛莫: ArrayList 实现List接口 ,随着向 ArrayList 中不断添加元素,其容量也自动增长 对于处理一列数据项,Java提供了两个类ArrayList和LinkedList, ArrayList的内部实现是基于内部数组Object[], 所以从概念上讲,它更象数组,但LinkedList的内部实...

金水区18023705604: ArrayList、linklist、list的区别
伍潘赛莫: List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两句话能说清楚的),而ArrayList是用数组实现的,它不是...

金水区18023705604: java中的LinkedList 和 ArrayList的区别? -
伍潘赛莫: 同步性 Vector是同步的.这个类中的一些方法保证了Vector中的对象是线程安全的.而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的.因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合那么使用ArrayList是...

金水区18023705604: ArrayList与 LinkedList的区别,为什么JAVA提供这样两种同样带有顺序的集合类,它们有什么不同? -
伍潘赛莫: List: 有顺序的,元素可以重复 遍历:for 迭代 排序:Comparable Comparator Collections.sort() ArrayList:底层用数组实现的List 特点:查询效率高,增删效率低 轻量级 线程不安全遍历:ArrayList al=new ArrayList(); al.add("winsun"); al.add(...

金水区18023705604: 在java中Arraylist与LinkedList的异同,求解求解 -
伍潘赛莫: ArrayList:底层数据结构是数组,查询快,增删慢.线程不安全,效率高.Vector:底层数据结构是数组,查询快,增删慢.线程安全,效率低.LinkedList:底层数据结构是链表,查询慢,增删快.线程不安全,效率高.List有三个儿子,我们到底使用谁呢?看需求(情况).要安全吗?要:Vector(即使要安全,也不用这个了,后面有替代的)不要:ArrayList或者LinkedList查询多:ArrayList增删多:LinkedList如果你什么都不懂,就用ArrayList.

金水区18023705604: ArrayList和LinkedList底层实现的区别 -
伍潘赛莫: ArrayList和LinkedList都实现了List接口,ArrayList的实现用的是数组,LinkedList是基于链表,ArrayList适合查找,LinkedList适合增删.ArrayList与LinkList两者的区别:ArrayList是基于索引的数据接口,它的底层是数组.它可以以O(1)时间复...

金水区18023705604: 根据你的理解,请说明一下ArrayList和LinkedList的区别 -
伍潘赛莫: ArrayList的优势在于动态的增长数组,非常适合初始时总长度未知的情况下使用.LinkedList的优势在于在中间位置插入和删除操作,速度是最快的,O(1),而ArrayList是O(n-i)的.大道理请参看: LinkedList类 LinkedList实现了List接口,允许...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网