stream().filter().findAny()和stream.filter().limit(1)的区别
时间: 2023-11-21 14:57:04 浏览: 94
stream().filter().findAny()和stream.filter().limit(1)的区别在于:
- stream().filter().findAny()会返回流中任意一个符合条件的元素,如果没有符合条件的元素则返回空Optional。
- stream.filter().limit(1)会返回流中符合条件的第一个元素,如果没有符合条件的元素则返回空Optional。
下面是两个例子:
1. stream().filter().findAny()
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> result = list.stream().filter(x -> x > 3).findAny();
if (result.isPresent()) {
System.out.println(result.get()); // 输出:4
} else {
System.out.println("No matching elements found");
}
```
2. stream.filter().limit(1)
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> result = list.stream().filter(x -> x > 3).limit(1).findFirst();
if (result.isPresent()) {
System.out.println(result.get()); // 输出:4
} else {
System.out.println("No matching elements found");
}
```
阅读全文