博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 删除List<T>中空值
阅读量:6393 次
发布时间:2019-06-23

本文共 1946 字,大约阅读时间需要 6 分钟。

前言:

介绍一下使用普通的Java,Java 8 lambda和一些第三方库从Java List<?>中删除

空值。

1. Java 7或更低版​​本:

public void removeAllNullsFromListWithJava7OrLower() {      List
list = new ArrayList<>(Arrays.asList("A", null, "B", null)); list.removeAll(Collections.singleton(null)); System.out.print(list);// [A, B]} //注意: // 从不可变列表中删除空值将抛出java.lang.UnsupportedOperationException。复制代码

2. Java 8或更高版本(推荐):

public void removeAllNullsFromListWithJava8() {      List
list = new ArrayList<>(Arrays.asList("A", null, "B", null)); list.removeIf(Objects::isNull); System.out.print(list);// [A, B]} //如果不想使用 removeIf 也可以: public void removeAllNullsFromListWithJava8() { List
list = new ArrayList<>(Arrays.asList("A", null, "B", null)); List
newList = list.stream().filter(Objects::nonNull) .collect(Collectors.toList()); System.out.print(newList );// [A, B] }复制代码

3. Apache Commons:

Apache Commons

CollectionUtils
类提供了一个过滤器
(Iterable,Predicate)
方法。

public void removeAllNullsFromListWithApacheCommons() {      List
list = new ArrayList<>(Arrays.asList("A", null, "B", null)); CollectionUtils.filter(list, PredicateUtils.notNullPredicate()); System.out.print(list);// [A, B]}复制代码

4.Google Guava:

Guava中的

Iterables
类提供了
removeIf(Iterable,Predicate)
方法。

public void removeAllNullsFromListUsingGuava() {      List
list = new ArrayList<>(Arrays.asList("A", null, "B", null)); Iterables.removeIf(list, Predicates.isNull()); System.out.print(list);// [A, B]} //或者,如果不想修改现有列表,Guava允许我们创建一个新列表:public void removeAllNullsFromList() { List
list = new ArrayList<>(Arrays.asList("A", null, "B", null)); List
newList = new ArrayList<>(Iterables.filter(list, Predicates.notNull())); System.out.print(newList);// [A, B]} 复制代码

转载于:https://juejin.im/post/5cf5ebc6f265da1b5e72df98

你可能感兴趣的文章
ACCESS模糊查询出现"内存溢出"原因是日文片假名
查看>>
Error setting expression 'XXX' with value 设置表达式“XXX”时出错 解决方法
查看>>
javascript获取url参数和script标签中获取url参数
查看>>
CF359D:Pair of Numbers(数论)
查看>>
进制转换展示
查看>>
张泉灵:做投资这半年哭过的时间比前十年都多
查看>>
c++将bool变量以文字形式打印
查看>>
洛谷P1111 修复公路 并查集 图论 最小生成树
查看>>
微名汇-微信公众平台功能开发(微信聊天机器人)
查看>>
A2W和W2A :很好的多字节和宽字节字符串的转换宏
查看>>
我个人的javascript和css命名规范
查看>>
kylin的安装与配置
查看>>
Android Intent的setClass和setClassName的区别
查看>>
php-fpm nginx 使用 curl 请求 https 出现 502 错误
查看>>
西宁海关首次对外展示截获500余件有害生物标本
查看>>
泸州移动能源产业园首片薄膜电池组件成功下线
查看>>
韩国瑜会见陆委会主委陈明通:别给高雄念紧箍咒
查看>>
交通部:加大人工售票力度保障农民工春运出行
查看>>
物联网的学术层、应用层和行为层的基本介绍
查看>>
初探github(一)
查看>>