我不熟悉Java的流API,我对这个案例的结果感到困惑:
Stream<String> stream = Stream.of("A","B","C","D"); System.out.println(stream.peek(System.out::println).findAny().get());
这张照片是:
A A
A A B B C C D D
这个 findAny method 没有找到所有的元素;它只找到一个元素。
findAny
Optional 描述流的某些元素或空 这是一种短路终端操作。
Optional 描述流的某些元素或空
Optional
这是一种短路终端操作。
在本例中,在调用终端方法之前不会处理流, 芬丹 peek method
芬丹
peek
findFirst count() ),则不会为这些元素调用该操作。
findFirst
count()
这个 方法是短路,所以 窥视 的操作将仅对找到的元素调用 芬丹 .
窥视
这就是为什么你只得到两个 A 窥视 方法,然后打印第二个,即 可选择的 退回 .
A
可选择的