美文网首页
【Java】传统方式与聚合操作方式遍历数据

【Java】传统方式与聚合操作方式遍历数据

作者: 李翾 | 来源:发表于2019-04-04 11:42 被阅读0次

    JDK1.8以后,就有了一个新特新,Stream管道。

    遍历数据的传统方式就是使用for循环,然后条件判断,最后打印出满足条件的数据

    for (Hero h : heros) {
       if (h.hp > 100 && h.damage < 50)
          System.out.println(h.name);
    }
    

    使用聚合操作方式,画风就发生了变化:

    heros
        .stream()
        .filter(h -> h.hp > 100 && h.damage < 50)
        .forEach(h -> System.out.println(h.name));
    
    

    要了解聚合操作,首先要建立Stream和管道的概念
    Stream 和Collection结构化的数据不一样,Stream是一系列的元素,就像是生产线上的罐头一样,一串串的出来。
    管道指的是一系列的聚合操作。

    管道又分3个部分
    管道源:在这个例子里,源是一个List
    中间操作: 每个中间操作,又会返回一个Stream,比如.filter()又返回一个Stream, 中间操作是“懒”操作,并不会真正进行遍历。
    结束操作:当这个操作执行后,流就被使用“光”了,无法再被操作。所以这必定是流的最后一个操作。 结束操作不会返回Stream,但是会返回int、float、String、 Collection或者像forEach,什么都不返回, 结束操作才进行真正的遍历行为,在遍历的时候,才会去进行中间操作的相关判断

    注: 这个Stream和I/O章节的InputStream,OutputStream是不一样的概念。

    把Collection切换成管道源很简单,调用stream()就行了。

    heros.stream()

    但是数组却没有stream()方法,需要使用

    Arrays.stream(hs)

    或者

    Stream.of(hs)

    相关文章

      网友评论

          本文标题:【Java】传统方式与聚合操作方式遍历数据

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