【发布时间】:2020-07-19 12:07:49
【问题描述】:
我有这个代码
Integer[] i = {1,3,4,6,7,43,2,1};
//create a predicate
Predicate<Integer> ini = value -> value > 10;;
//display-filter-and print the values in the collection
List<Integer> sss =Stream.of(i).peek(e -> System.out.println(e)).filter(ini).
peek(value -> System.out.println("After filter " + value)).collect(Collectors.toList());
//display the filtered list
System.out.println(sss);
我得到了这个结果
1
3
4
6
7
43
After filter 43
2
1
[43]
我的问题是为什么我会在 peek 语句中间收到过滤器消息?我在不同的 IDE 中尝试过这个,但我得到了相同的结果。
【问题讨论】:
-
您不会收到“在 peek 语句中间”的消息,因为没有“peek 语句”。有一个流操作,您将看到流操作是如何工作的,这正是
peek的目的。
标签: java lambda collections functional-programming java-stream