ArrayList与LinkList性能对比----迭代元素

非 Y 不嫁゛ 提交于 2020-08-17 04:26:55

今天接着上一篇,测试迭代元素的性能

代码 码云路径

迭代元素List 结构的有两种方法,for(;;)和iterator()

1万的数量级结果如下图,耗时单位ms

for 耗时 arrayList < linkList

iterator 耗时 arrayList = linkList

10万的数量级结果如下图,耗时单位ms

for 耗时 arrayList < linkList

iterator 耗时 arrayList < linkList

两种结果一对比迭代的性能arrayList高于linkList ,同list 的迭代方法性能arrayList 的for>iterator, linkList的for<iterator

linkList的for 迭代要慎用,它走的逻辑和前面的添加指定下标元素获删除指定下标元素逻辑一样,都是通过下标获取元素,而这一种方式都要循环一半的链表

来获取对应下标的元素,所以性能急剧下降

ArrayList 实现了RandomAccess 接口,这个接口是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的List中性能更加高效(在Collections二分查找时)。

就像它的注释一样,实现这个接口,采用for 迭代的效率是高于iterator 迭代的

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!