Java如何去除集合中某个字段为空对象呢?
下文笔者讲述剔除集合中字段为空的元素的方法分享,如下所示
过滤list集合中指定字段为空的元素的方法
借助stream中的filter方法,即可按条件过滤集合中的元素
如:
集合 集合名称 = 集合.stream()
.filter(对象 -> 对象.get某个属性() != null)
.collect(Collectors.toList());
例:
public class Person {
private Integer id;
private String name;
private String sex;
private String email;
private Long phoneNumber;
private String personUuid;
/***/
}
//测试类
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
//模拟数据--->其中person2中的uuid为null
Person person1 = new Person(1,"猫猫","男","maomao@java265.com",13211227430L,"8BADB4E1-76B0-1323-1C77-F25A1D06045D");
Person person2 = new Person(2,"狗狗","女","gougou@java265.com",13311111234L,null);
Person person3= new Person(3,"奥特曼","男","aoteman@java265.com",1331123416L,"A0576C79-1212-879B-146B-1C0D172EC1A6");
Person person4 = new Person(4,"牛牛","女","niuniu@java265.com",1331133999L,"EC1EE903-FB4E-5672-B95B-2C41A0CAFD82");
Person person5 = new Person(5,"昭昭","女","zhaohzao@java265.com",13411112111L,null);
List<Person> personList = new ArrayList<Person>();
personList.add(person1);
personList.add(person2);
personList.add(person3);
personList.add(person4);
personList.add(person5);
//此时person2中的uuid为null。所以某些特定时段会报错。
personList.forEach(person->{
System.out.println(person);
});
//分割线
System.out.println("--------------------------------------------------------");
//处理数据
List<Person> collect = personList.stream().filter(Person -> Person.getPersonUuid() != null).collect(Collectors.toList());
collect.forEach(person -> {
System.out.println(person);
});
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


