stream().findfirst()
时间: 2023-04-14 22:02:33 浏览: 723
stream().findfirst()是Java 8中Stream API中的一个方法,用于在流中查找第一个元素。它返回一个Optional对象,如果流为空则返回空的Optional对象。如果流不为空,则返回一个包含第一个元素的Optional对象。
相关问题
用stream.findfirst去list第一个,并判断是否为空
`Stream.findFirst()` 是Java Stream API中的一个方法,用于查找流中第一个匹配条件的元素。如果流中有符合条件的元素,则返回一个Optional对象,其中包含该元素;如果没有找到匹配项,那么返回的是一个空的Optional。
例如,假设你有一个List<String>,你可以这样做:
```java
List<String> myList = Arrays.asList("a", "b", "c");
Optional<String> firstElement = myList.stream()
.findFirst();
if (firstElement.isPresent()) {
String first = firstElement.get(); // 如果列表非空,这里将获取第一个元素
System.out.println("第一个元素是: " + first);
} else {
System.out.println("列表为空");
}
```
在这个例子中,`findFirst()`会检查列表是否含有元素,如果存在则返回一个包含第一个元素的Optional,不存在则返回一个空的Optional。
deliveryInfo.setCreateCrew(crews.values().stream().findFirst().isPresent() ? crews.values().stream().findFirst().get() : null); deliveryInfo.setCreateShift(shifts.values().stream().findFirst().isPresent() ? shifts.values().stream().findFirst().get():null); 简化
这段代码可以简化为:
```
deliveryInfo.setCreateCrew(crews.values().stream().findFirst().orElse(null));
deliveryInfo.setCreateShift(shifts.values().stream().findFirst().orElse(null));
```
这样就不需要使用三元表达式了,orElse(null)方法可以将Optional对象中的值取出来,如果Optional对象为空则返回null。
阅读全文