Stream findFirst()
方法
Optional<T> findFirst()
findAny()
方法是一个终端短路操作。findFirst()
方法返回一个Optional
。- 如果 Stream 非空,则
Optional
包含作为给定流的第一个元素的值。 - 如果 Stream 为空,则
Optional
包含空值。 - 如果所选元素为
null
,则抛出 NullPointerException。 - 如果
Stream
已经定义了遇到顺序,findFirst()
会返回遇到顺序中的第一个元素。 - 如果
Stream
没有遇到 order,findFirst()
可以返回任何元素。 - 上述行为对所有顺序和并行流都无效。
findFirst()
的行为不会因 Stream 的并行性而改变。
on it road.com
Stream findFirst()
示例
在给定的示例中,我们从 Stream
中获取第一个元素。
只要我们得到第一个元素,流操作就会转移到 ifPresent()
方法。
我们使用 ifPresent()
方法中的方法引用打印第一个元素。
import java.util.stream.Stream; public class Main { public static void main(String[] args) { //sequential stream Stream.of("one", "two", "three", "four") .findFirst() .ifPresent(System.out::println); //parallel stream Stream.of("one", "two", "three", "four") .parallel() .findFirst() .ifPresent(System.out::println); } }
如果 Stream 非空,则 findFirst() 方法返回描述给定流的第一个元素的 Optional ,如果流为空,则返回空的 Optional 。
日期:2020-09-17 00:10:04 来源:oir作者:oir