首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >遍历List效率分析

遍历List效率分析

作者头像
CodeWwang
发布2022-08-24 10:16:15
发布2022-08-24 10:16:15
8050
举报
文章被收录于专栏:CodeWwangCodeWwang

  List是集合框架中使用度非常高的集合,在使用过程中经常会对List进行遍历,取得其中的值打印或者作其他操作。常用的有迭代器,foreach循环,for循环,stream来遍历List,但是他们的效率是大不一样的,来看看!

代码语言:javascript
复制
/*使用迭代器去遍历*/ 
long time1 = System.nanoTime(); 
Iterator<ApiResponse> iterator = spiderResults.iterator(); 
while (iterator.hasNext()){ 
 System.out.println(iterator.next()); 
} 
System.out.println("Iterater程序耗时:"+(System.nanoTime()-time1)+" ms"); 
/*使用foreach循环去遍历*/ 
long time2 = System.nanoTime(); 
for(ApiResponse i:spiderResults) 
{ 
} 
System.out.println("Foreach程序耗时:"+(System.nanoTime()-time2)+" ms"); 
/*使用for循环遍历*/ 
long time3 = System.nanoTime(); 
for(int l=0;l<spiderResults.size();l++){ 
 ApiResponse o = spiderResults.get(l); 
} 
System.out.println("For循环程序耗时:"+(System.nanoTime()-time3)+" ms"); 
/*使用Stream遍历*/ 
long time4 = System.nanoTime(); 
spiderResults.stream().forEach(x->{ 
 Object o = x; 
}); 
System.out.println("Stream程序耗时:"+(System.nanoTime()-time4)+" ms"); 

第一次

Iterater程序耗时:478300 ms Foreach程序耗时:26800 ms For循环程序耗时:14500 ms Stream程序耗时:6849100 ms

第二次

Iterater程序耗时:1720200 ms Foreach程序耗时:82200 ms For循环程序耗时:43800 ms Stream程序耗时:6445500 ms

第三次

Iterater程序耗时:883000 ms Foreach程序耗时:42800 ms For循环程序耗时:35400 ms Stream程序耗时:10080900 ms

  由此可见,普通For循环的效率最快,Stream速度最慢。(效率由高到低) for>foreach>iterater>stream

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一次
  • 第二次
  • 第三次
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档