📜  Java Stream findAny() 与示例(1)

📅  最后修改于: 2023-12-03 14:42:16.276000             🧑  作者: Mango

Java Stream findAny() 与示例

在Java 8中,Stream API引入了一个名为findAny()的方法。这个方法返回一个Optional对象,它包含了在Stream中任何一个元素。这个方法用于并行流时有优势,因为在并行流中,它只需要返回任何一个元素,不需要考虑顺序。

语法
Optional<T> findAny()
示例

假设我们有一个存储员工姓名的列表,我们想要找到列表中任何一个姓"Smith"的员工。我们可以使用findAny()方法轻松实现这一点。

List<String> employees = Arrays.asList("John Smith", "Jane Doe", "Bob Johnson", "Lucas Smith");

Optional<String> anySmith
        = employees.stream()
                   .filter(name -> name.endsWith("Smith"))
                   .findAny();

if (anySmith.isPresent()) {
    System.out.println("Found a Smith: " + anySmith.get());
} else {
    System.out.println("No Smiths found.");
}

输出:

Found a Smith: John Smith

注意,findAny()方法不保证返回流中的第一个元素,也不能保证返回相同的元素,因为在并行流中,它处理的元素是乱序的。