如何使用Optional获取元素数量?已知List可通过size()方法实现
如何获取Optional中的元素数量
Optional<T>是Java提供的用于规避空指针异常的容器类,它最多只能容纳1个非空元素,因此元素数量只能是0或1,没有提供和List类似的size()方法,需要通过存在性判断间接得到数量。
单个Optional的数量获取
直接通过isPresent()方法判断元素是否存在,转换为对应数值即可:
Optional<User> data = this.Service.getUserById(id); // 存在元素返回1,不存在返回0 int elementCount = data.isPresent() ? 1 : 0; System.out.print(elementCount);
如果你使用的是Java 11及以上版本,也可以用isEmpty()方法判断:
int elementCount = data.isEmpty() ? 0 : 1;
多个Optional的总数统计
如果你需要统计一批Optional实例中有值的总数量,可以结合Stream实现:
List<Optional<User>> userOptionalList = ...; long totalCount = userOptionalList.stream() .filter(Optional::isPresent) .count();
内容的提问来源于stack exchange,提问作者Faheem azaz Bhanej
相关产品推荐
相关产品推荐

