看了你就懂了:ArrayList和LinkedList

本文对比了ArrayList和LinkedList这两种Java集合类的特点与应用场景。ArrayList适用于频繁访问元素和在列表末尾进行增删操作的情况,而LinkedList则适合需要频繁插入或删除元素的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联系:

ArrayList和LinkedList都是List接口的实现类,而List接口继承自Collection接口。

Collection是java.util包提供的集合类,它是除Map外所有其他集合类的根接口。

区别:

1、

    Arraylist是以动态数组作为存储结构的;

    LinkedList是以Link链表作为存储结构;

2、 

   ArrayList的查找效率很高,因为它底层是数组,故随机访问List的效率较好;

   LinkedList是线性的数据存储方式,所以是需要移动指针从前往后依次查找的;

3、

   当对数据进行增加和删除的操作时(add和remove),LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后的数据的下标索引造成影响,需要进行数据的移动;

4、

  ArrayList是需要手动的设置固定大小的容量,初始是0,当创建第一个对象时,它会变成10,当存放的size大于数组长度时,他会以1.5倍的方式扩容,但是使用比较方便;

  LinkedList时不需要设置容量的大小,LinkedList的自由性较高,能够随着数据量的变化而变化,但是他不便于使用;

5、

  ArrayList主要控件开销在于需要给List列表预留一定的空间,这是ArrayList的唯一开销;

  LinkedList的主要控件开销是在于需要给存储节点的信息以及结点指针信息;

总结:

使用ArrayList:频繁访问列表中的某一个元素以及只需要在列表末尾进行添加和删除元素;

使用LinkedList:需要通过循环跌代来访问列表中的某些元素以及需要频繁的在列表开头、中间、末尾等元素操作。

                                 


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值