List 集合去除 null 元素


虽然List集合在正常使用过程中不会添加NULL值作为元素,但为了代码的健壮性,在遍历获取元素时进行判断更佳。在编写代码时,判断NullPointerException(简称NPE)非常重要。

数据准备如下:

 List list = new ArrayList<>();
 list.add(1);
 list.add(5);
 list.add(13);
 list.add(null);
 list.stream().forEach(item -> System.out.println(item.toString()));

那么在打印时会出现空指针异常。

1)第一种方式:使用 for 循环处理集合

把要处理的集合进行遍历,取出其中不为空的元素,添加到新的集合中,封装成一个方法:

    public static  List removeNull(List<? extends T> oldList) {
        List listTemp = new ArrayList();
        for (T t : oldList) {
            if (t != null) {
                listTemp.add(t);
            }
        }
        return listTemp;
    }

这种方式较为简单,在遍历前调用此方法即可,但需要遍历元素删除NULL值

list = removeNull(list);

2)第一种方式:使用系统 api  Collections.singleton()

也是在遍历前直接删除NULL值

list.removeAll(Collections.singleton(null));

java.util.Collections.singleton()说明:java自带的方法,返回只包含特定对象的集合,集合size为1。也就是说,上述在删除NULL值时将NULL放入一个集合中,再使用removeAll方法删除其所有的NULL值。

相关