性能 之 【list遍历效率】
发布日期:2021-06-30 16:14:11 浏览次数:2 分类:技术文章

本文共 1573 字,大约阅读时间需要 5 分钟。

这里测试四种遍历方式:

最基础的size(),增强for循环,迭代和stream方式 ,测试5000万次遍历List<int> 结果如下:

注:测试了多个数量级,多次测试结果几乎和以下情况一致,跌倒和增强for循环的效率相差不多

可以看出,最基础的size()遍历,效率最高,其次增强for循环,然后是跌倒,最后是stream 。

测试代码

package performance;import cn.hutool.core.util.RandomUtil;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;/** * @author keepgoon * @Description: TODO * @date 2019/6/2511:29 */public class Listtest {    private static void addItem(List
list){ for (int i =0;i<5000 * 10000;i++){ list.add(RandomUtil.randomInt()); } } private static void forIndex(List
list){ long start = new Date().getTime(); for(int i = 0;i
list){ long start = new Date().getTime(); Iterator
it = list.iterator(); while (it.hasNext()) { Integer str = (Integer) it.next(); } System.out.println("forIterator : " +(new Date().getTime()-start)+ " 毫秒"); } private static void forPower(List
list){ long start = new Date().getTime(); for(int key : list){ key =key; } System.out.println("forPower : " +(new Date().getTime()-start)+ " 毫秒"); } private static void streamFor(List
list){ long start = new Date().getTime(); list.stream().forEach(item->{}); System.out.println("Stream : " +(new Date().getTime()-start)+ " 毫秒"); } public static void main(String[] args) { List
list = new ArrayList <>(); addItem(list); forIndex(list); forIterator(list); forPower(list); streamFor(list); }}

 

转载地址:https://keepgoon.blog.csdn.net/article/details/93617246 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:有逼格的代码 之 【善用枚举】1-3
下一篇:有逼格的代码 之 【使用Stream代替for循环】1-2

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月24日 21时32分43秒