Java 8 peek() 方法的一些疑惑
伊谢尔伦
伊谢尔伦 2017-04-17 17:30:08
[Java讨论组]
Stream.of("one", "two", "three", "four").peek(e -> System.out.println(e));

这样不会有任何的输出;

Stream.of("one", "two", "three", "four").peek(e -> System.out.println(e)).collect(Collectors.toList());

这样输出:
one
two
three
four

Stream.of("one", "two", "three", "four")
    .peek(e -> System.out.println("Peeked value: " + e))
    .map(String::toUpperCase)
    .peek(e -> System.out.println("Mapped value: " + e))
    .collect(Collectors.toList());

这样输出:
Peeked value: one
Mapped value: ONE
Peeked value: two
Mapped value: TWO
Peeked value: three
Mapped value: THREE
Peeked value: four
Mapped value: FOUR

知道 peek() 方法接受一个实现了 consumer 接口的类,但是实在是搞不清楚到底它是如何运行的。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
PHP中文网

简单地说就是懒咯 你没有对流进行任何操作peek就不会执行

黄舟

peek不是终结操作,其返回值还是Stream,你这种情况应该用forEach

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号