stream().findFirst().orElse
时间: 2023-10-18 15:30:36 浏览: 179
这是一个关于Java Stream的问题。stream().findFirst().orElse()方法链的作用是从流中获取第一个元素,如果流为空,则返回一个给定的默认值。其中,findFirst()方法返回流中的第一个元素(如果存在),orElse()方法在流为空时返回指定的默认值。
例子:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> firstElement = numbers.stream().findFirst();
int result = firstElement.orElse(0);
System.out.println(result); // 输出: 1
List<Integer> emptyList = new ArrayList<>();
Optional<Integer> emptyFirstElement = emptyList.stream().findFirst();
int emptyResult = emptyFirstElement.orElse(0);
System.out.println(emptyResult); // 输出: 0
```
在这个例子中,numbers列表包含了一些整数元素,我们使用stream()方法创建了一个流。然后,我们通过调用findFirst()方法获取了流中的第一个元素,并将结果存储在一个Optional对象中。最后,我们使用orElse()方法获取Optional对象中的值,如果流为空,则返回0作为默认值。
注意,如果你想要获取具体的元素而不是Optional对象,可以使用findFirst().orElseThrow()方法链,它会在流为空时抛出一个异常。
阅读全文