微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java 8和Java 9中的Stream.peek方法

如何解决Java 8和Java 9中的Stream.peek方法

我假设您正在Java 9下运行它?您没有更改SIZED流的属性,因此不需要执行任何一个mappeek全部执行。

换句话说,您关心的只是count最终结果,但与此同时,您不List任何 方式(filter例如通过或distinct)更改的初始大小。这是在Streams中完成的优化。

顺便说一句,即使您添加了虚拟过滤器,它也会显示您期望的结果:

values.stream ()
      .map(n -> n*2)
      .peek(System.out::print)
      .filter(x -> true)
      .count();

解决方法

我正在学习Java 8
lambda表达式,我想问一下以下与peek我遇到的函数接口中的方法有关的Java代码。

在IDE上执行程序时,它不输出。我期望它会给2,4,6

import java.util.Arrays;
import java.util.List;

public class Test_Q3 {

    public Test_Q3() {
    }

    public static void main(String[] args) {
        List<Integer> values = Arrays.asList(1,2,3);
        values.stream()
              .map(n -> n * 2)
              .peek(System.out::print)
              .count();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。