📅  最后修改于: 2023-12-03 14:42:16.276000             🧑  作者: Mango
在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()
方法不保证返回流中的第一个元素,也不能保证返回相同的元素,因为在并行流中,它处理的元素是乱序的。