LinkedList与ArrayList两个集合,都实现了list接口,它们的实现原理,和区别?

两者的特性对比:

空间:

链表由于要维护前后的连接,所以占用的空间比较大

操作性能:

增删查操作

增:

ArrayList数组列表:

当空间不足时,重新申请一个双倍空间的数组,然后将原来数组中的内容,拷贝到新的数组中,

然后将新的值添加进去。过程繁琐。

LikedList 链表:

链表根本不会存在空间不足的情况,每当添加一个数据项时,都会创建一个节点,然后设置节点的

前后连接,设置节点的值。过程简单。

删:

       ArrayList数组列表:删除中间内容时,需要将后续的内容向前拷贝转移。过程繁琐。

       LinkedList链表:删除中间节点时,只需要将前后节点的引用重新赋值即可。过程简单。

查:

       ArrayList数组列表:连续的内存空间,直接按照索引值即可查到。过程简单。

LinkedList链表:需要从第一个节点,逐个的往后查询,最终到达目标索引。过程繁琐

结论:ArrayList方便查询,占用空间小。LinkedList方便添加删除等修改操作,占用空间大。

所以,我们需要根据具体的情况,来选择相应的列表。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值