【集合】解析集合ArrayList和linkedlist

1.Arraylist和linkedlist内部结构解析,有什么区别?

ArrayList是动态数组结构的,lindedlist是链表结构的

  • ArrayList查询比较快,插入删除比较慢。因为Arraylist是动态数组,存储数据用的是一块连续的大内存,若是在某一个位置进行添加或者删除一个元素,则剩下的元素都要相应的向前或者向后移动。若该动态数组的元素很多,那么要移动的元素就会很多,所以效率就会很低。由于每个元素占用的内存一样,可以通过下标迅速访问元素中的任何数据,所以查找很快。
  • linkedlist查询比较慢,插入删除比较快。因为linkedlist是基于双向链表实现的,链表可以占用一段不连续的内存空间,双向链表元素含有前驱节点和后驱节点,里面存储的是前一个元素和后一个元素的位置,中间部分是业务数据。若是想添加或者删除元素,只需要更改前驱节点后驱节点的指向就可以了,删除也是一样,不像动态数组那么麻烦。但是因为占用的不是一段连续的内存空间,所以查询要一个一个查,比较慢。

linkedlist内部结构

和list不同的是hashmap是数组和链表的完美结合,具体解析可见:

https://blog.csdn.net/qq_30546099/article/details/89531651

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值