ArrayList与LinkList性能对比迭代元素

编程

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

代码 码云路径

迭代元素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 迭代的

以上是 ArrayList与LinkList性能对比迭代元素 的全部内容, 来源链接: utcz.com/z/517237.html

回到顶部