刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
面试题
请问ArrayList 和 LinkedList 的区别 ?
使用微信搜索喵呜刷题,轻松应对面试!
答案:
分析&回答
ArrayList 底层基于动态数组实现,LinkedList 底层基于链表实现。
查询角度
ArrayList 通过 index 直接定位到数组对应位置的节点,而 LinkedList需要从头结点或尾节点开始遍历,直到寻找到目标节点,因此在效率上 ArrayList 优于 LinkedList。
插入、删除角度
- 随机插入和删除
ArrayList 需要移动目标节点后面的所有节点,而 LinkedList 只需修改目标节点前后节点的 next 或 prev 属性即可,因此在效率上 LinkedList 优于 ArrayList。 - 顺序插入和删除
由于 ArrayList 不需要修改上一个节点,且效率微胜 LinkedList 。又因为大部分情况下我们的使用都是顺序插入,所以在实际生产中更多使用 ArrayList。
反思&扩展
- 数组是顺序存储结构,链表是链式存储结构
- 数组是把所有元素按顺序进行存储,而链表则是通过指针连接元素与元素
- 数组要分配固定大小的连续空间
- ArrayList是动态数组,默认容量是10,每次扩容都为原来容量的1.5倍,扩容时将所有数据Copy到新对象。
创作类型:
原创
本文链接:请问ArrayList 和 LinkedList 的区别 ?
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



