streamfilter忽略属性中的空值
在使用stream().filter过滤集合元素时,可以使用Java 8的Optional类来忽略属性中的空值。Optional类用于表示一个值可能存在也可能不存在,可以避免空指针异常的发生。
举个例子,假设我们有一个Person类,其中有一个name属性:
public class Person {
private String name;
// getter and setter
}
如果我们想要过滤出所有name属性不为空的Person对象,可以这样写:
List<Person> people = ... // 初始化集合
List<Person> filteredPeople = people.stream()
.filter(p -> Optional.ofNullable(p.getName()).isPresent())
.collect(Collectors.toList());
上面的代码中,使用了Optional.ofNullable方法来将可能为空的属性包装成Optional对象,然后调用isPresent()方法判断是否存在值。如果存在值,说明属性不为空,就将该Person对象加入到过滤后的集合中
原文地址: http://www.cveoy.top/t/topic/eN1H 著作权归作者所有。请勿转载和采集!