首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java流peek()操作

Java流peek()操作
EN

Stack Overflow用户
提问于 2020-08-09 21:33:43
回答 2查看 582关注 0票数 2

我一直在尝试处理流操作,并试图理解为什么下面不将每个整数转换为字符串。我对peek()的理解是,它充当中间操作符,如果后面跟着终端操作符,则将给定的操作应用于流。任何帮助都会很好!

代码语言:javascript
复制
List<Integer> testList = Arrays.asList(10, 11, 12, 13, 14, 15);
testList.stream().peek(x -> x.toString()).forEach(x -> System.out.println(x.getClass()));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-09 21:35:29

peek对每个流元素执行操作,但不修改流。它通常用于在进行调试的某些操作之前或之后打印Stream的元素,例如stream.peek(System.out::println)peek说,它:

返回一个由该流的元素组成的流,另外,在从结果流中消耗元素时,对每个元素执行提供的操作。

您正在寻找Stream#map,它在使用元素调用函数时将Stream的每个元素转换为函数的结果。根据文档,它:

返回一个流,该流由将给定函数应用于该流元素的结果组成。

票数 3
EN

Stack Overflow用户

发布于 2020-08-09 22:05:36

方法peek以使用者为参数,使用者只使用元素--它以值作为参数并返回一个空值,这意味着这里返回的值x -> x.toString()只是被JRE忽略了,也是为了调试而设置的peek,peek意味着外观,而不是触摸。你想用地图代替。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63331553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档