问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ArrayList和LinkedList底层实现的区别

发布网友 发布时间:2022-10-03 16:29

我来回答

2个回答

热心网友 时间:2023-10-11 02:50

ArrayList和LinkedList都实现了List接口,ArrayList的实现用的是数组,LinkedList是基于链表,ArrayList适合查找,LinkedList适合增删。

ArrayList与LinkList两者的区别:

ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。
相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。
LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。

但是要删除数据却是开销很大的,因为这需要重排数组中的所有数据。
2) 相对于 ArrayList , LinkedList 插入是更快的。因为 LinkedList 不像 ArrayList 一样,不需要改变数组的大小,也不需要在数组装满的时候要将所有的数据重新装入一个新的数组,这是 ArrayList 最坏的一种情况,时间复杂度是 O(n) ,而 LinkedList 中插入或删除的时间复杂度仅为 O(1) 。 ArrayList 在插入数据时还需要更新索引(除了插入数组的尾部)。
3) 类似于插入数据,删除数据时, LinkedList 也优于 ArrayList 。
4) LinkedList 需要更多的内存,因为 ArrayList 的每个索引的位置是实际的数据,而 LinkedList 中的每个节点中存储的是实际的数据和前后节点的位置 ( 一个 LinkedList 实例存储了两个值: Node<E> first 和 Node<E> last 分别表示链表的其实节点和尾节点,每个 Node 实例存储了三个值: E item,Node next,Node pre) 。

什么场景下更适宜使用 LinkedList,而不用ArrayList
1) 你的应用不会随机访问数据 。因为如果你需要LinkedList中的第n个元素的时候,你需要从第一个元素顺序数到第n个数据,然后读取数据。
2) 你的应用更多的插入和删除元素,更少的读取数据 。因为插入和删除元素不涉及重排数据,所以它要比ArrayList要快。

热心网友 时间:2023-10-11 02:51

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处。(参考数组与链表来思考)
3.对于新增和删除操作add和remove,LinedList比较占优势,只需要对指针进行修改即可,而ArrayList要移动数据来填补被删除的对象的空间。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学入学应该带哪些必备物品? tim删除聊天记录的方法步骤 pc端彻底删除tim聊天记录 甩脂机调到什么档位 如何用甩脂机 甩脂机的正确使用方法 使用抖脂机要注意什么 怎样申请小号微信号 ...的长和宽分别增加6米,扩建后草坪的面积增加了多少 ...扩建后长和宽分别增加10米,扩建后的操场面积增加了多少平方米?_百 ... 长方形的公园它的面积长和宽分别扩大十米后它的平方增加了面积增加了13... 典韦最强出装和铭文 赶紧来看看 水为什么成螺旋状进入水管 螺旋风管的特点具体有哪些 xp电脑hdmi连接电视没声音怎么办 手机闪光灯为啥打不开 独一无二一看就舒服的抖音网名 一见便倾心的抖音网名 抖音网名大全经典 一见便倾心的抖音网名大全 花有重开日,人无再少年! 2020年上海导游证考试时间,考生必知 旧金山的河运发达吗 旧金山湾的地理位置 旧金山湾的水域条件? 旧金山湾区成为世界著名高科技产业湾区的有利自然条件是什么? 旧金山湾区的简介 旧金山湾成为世界最佳天然港湾之一的水域条件? 弄了俩小菜应该怎么发朋友圈 和闺蜜带一样的东西怎么发朋友圈 我的登不上、叫好友发了验证码怎么还不行- 问一问 昨天晚上睡梦中被电醒了,感觉大脑受到特别强烈的电刺激,并伴随着梦境,最后被电醒,什么情况? 国行正品和原装有什么区别,国行正品为什么便宜 Algorithm小白入门 -- 数组 为什么数组不采用链式存储 ArrayList与LinkList有什么区别 李白的<早发白帝城>与巴东三峡巫峡长,猿鸣三声泪沾裳有什么异同点 关于恋爱的可爱的诗句 关于同性恋搞笑诗句 女主活泼大大咧咧 女追男 一直默默付出 男主冷漠无心然后男主渐渐爱上 后来女主放弃 男主反追的古言 开始女主倒追男主,男主无动于衷,后女主放弃,男主又反追的小说,多多益善 有没有女追男,男主不喜欢女主,最后女主放弃,男主后悔反追的小说 刚买的转运珠刮伤了怎么办? 手指带转运珠徕出深印子,有什么不好 我有一颗黄金的转运珠,成色看着还不错,也能用指甲在上面划出痕迹,但是落地会弹跳,怎么回事? 紫水晶转运珠掉到瓷砖地上弹了几下,在看水晶里面有一条纹,他们说是冰裂没坏,到底是怎么回事啊? 买来的转运珠才几天就有一个破洞,怎么回事,可以换吗 周生生的金转运珠有佩带痕迹拿回店铺能清洗吗? 六字真言转运珠上买回来有瑕疵,没事吧 跪求〔烟花易冷〕这首歌是什么意思, 戴口罩好看方法 怎样戴口罩好看 口罩正确佩戴方法 口罩如何戴 梦见自己满身泥 清洗感觉冷