美文网首页
for-forEach-stream三种遍历方法执行效率和.st

for-forEach-stream三种遍历方法执行效率和.st

作者: 螃蟹和骆驼先生Yvan | 来源:发表于2019-04-18 11:20 被阅读0次
    第一种for循环:
    demoList = Lists.newArrayList();
    traditionList = Lists.newArrayList();
    for(int i = 0;i < traditionListLength;i ++){
                traditionList.add(demoList.get(i).getIndex());
            }
    for这种写法执行效率是最快也是最方便debug的,缺点是代码量比较大,
    相对于LinkedList用forEach比较好,由于for循环的特性,
    每次循环都会进行比较,forEach本质iterator遍历就是指针依次指向数据结构的成员
    ,适用于复杂的for循环。
    缺点foreach不能对数组或集合进行修改(添加删除操作),
    如果想要修改就要用for循环,所以相比较下来for循环更为灵活。
    
    第二种forEach循环:
     demoList = Lists.newArrayList();
     forEachList = Lists.newArrayList();
     demoList.forEach(demo -> {
                forEachList.add(demo.getIndex());
            });
    forEach执行效率第二,代码量较小,但是debug比较费劲,
    foreach不能对数组或集合进行修改(添加删除操作),因为它不具备索引。
    
    第三种stream循环:
    demoList = Lists.newArrayList();
    streamList = Lists.newArrayList();
    streamList = demoList.stream().map(demo -> 
    demo.getIndex()).collect(Collectors.toList());
    stream执行效率最慢,如果说for是1秒stream需要10秒,但是代码量最小。
    
    第四说说.stream().filter
    
    stream.filter用于过滤,.collect(Collectors.toList())把流中所有元素收集到List中
    此图参考:
    https://www.cnblogs.com/lu51211314/p/9401160.html

    相关文章

      网友评论

          本文标题:for-forEach-stream三种遍历方法执行效率和.st

          本文链接:https://www.haomeiwen.com/subject/aphzwqtx.html