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

ArrayList 和 LinkedList哪个迭代操作快

发布网友 发布时间:2022-04-22 03:04

我来回答

3个回答

热心网友 时间:2023-12-20 11:50

事实上肯定是LinkedList效率比较快,因为在内部是通过链表链接的,而ArrayList则是直接存取比较快一些,因为内部用的是下标索引。以下是在我电脑进行五次测试的结果,你多测试测试,结果肯定是LinkedList比较快

追问我试了好多次,还是相反的结果

追答受你精神的刺激,刚才我狠狠谈久了一番,收获不小
首先不知道你学没学过数据结构,正如前面两位所言,链接表比顺序表遍历要快
但是在Java集合中,你使用了Iterator迭代器,迭代器模式为每个特定的数据结构提供了最好的遍历算法,因此你用ArrayList迭代比LinkedList快也不意外,这涉及到Java集合底层的细节,有空你可以研究研究。
而如果不用迭代器,在for循环中用List.get(下标)的方法,你会发现链表的遍历速度远远慢于ArrayList,这正充分说明了两种集合的特点

热心网友 时间:2023-12-20 11:50

因为你的 ArrayList 存放元素大小是固定的,并且在事先已经指定并开僻了指定数量的容量的数组空间,实际上只是对数组进行了操作。

而 LinkedList 是采用链表实现的,在事先无法指定容量,每添加一个数据都得去开僻新的空间。

如果在添加时这样进行比较的话,对于 LinkedList 是很不公平的。

对于迭代来说,ArrayList 速度远比 LinkedList 慢,因为链表迭代是很快的,如果要让 ArrayList 比 LinkedList 快的话,可以使用下标索引。

一般来说,ArrayList 和 LinkedList 具体使用哪一个以下这些我总结的使用规则:

1:事先能预知元素数量时,应优先选择 ArrayList,并且在构造中进行初始化
2:事先不能预知元素数量时,根据不同的迭代需要选择 ArrayList 或者 LinkedList
3:如果有很多的 remove 操作时,应优先选择 LinkedList
4:需要顺序迭代,也就是从第一个元素开始一个一个地访问到最后一个时,应优先选择 LinkedList
5:需要随机访问,也就是使用 get(int) 方法取任意下标访问时,应优先选择 ArrayList

热心网友 时间:2023-12-20 11:50

个人觉得讨论这个意义不大
一个是底层是数组
一个是链表
查找就Arraylist
增删改多的话就LinkedList
你这个和电脑的运行环境有很大关系 线程轮转 差几毫秒是必须的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 深圳律师劳动仲裁收费是多少 什么是随机存取迭代器 深圳请律师需要多少钱 C++中list容器怎么随机访问其中元素 为什么deque 随机访问 复杂度o 在深圳请个律师多少钱? 深圳刑事案件律师费用【深圳刑事案件律师费多少】 C++ sort函数 参数的用法? 深圳民事纠纷请律师要多少钱 C++高手们请进啦~~ 在深圳请个律师多少钱 C++ STL容器的选择 深圳离婚律师收费标准是多少? c++STL中的sort()函数 能对链表进行排序吗? 深圳请律师要多少钱? C++中支持随机访问的容器有哪些 深圳这里请个律师多少钱啊? C++list如何实现随机访问可以用begin()+5访问来访... 深圳律师如何收费? C++流迭代器是随机迭代器吗?可以随机访问里面的元... 深圳离婚律师费用标准详情 在C++中,矢量类和普通类有什么区别,有什么作用? 深圳离婚官司的费用,离婚官司多少钱【深圳离婚官司... [C++标准程序库的问题] list的迭代器是否可以随机... 请问,行事案件请律师是先给钱还是先办事?我在深... 类模板实现数组查找最大值,和最大值所在的数组下... 深圳法律援助中心是不是免费的?需要交钱请律师么? c++中容器是什么概念啊? 深圳发律师函收费标准? java ArrayList 随机访问、遍历 性能 求深圳民事案件律师资费!!! 深圳市找律师要多少钱? 一个两部手机上信息怎么同步?您好 一个两部手机上信息怎么同步 google analytics的新增移动应用分析 微信亲情卡怎么绑定的 微信怎么绑定亲情卡 海沧区有几个镇? 微信钱包亲情卡,加微信多久才能设置 海沧区在厦门属于城区还是郊区?