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); }); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。