由于map在使用foreach循环中删除元素的话会报空指针异常,只能采用迭代器的方式删除元素,写好代码后编译器竟然意外的提示我将代码改成lamada表达式,瞬间代码精简,idea牛逼!map.entrySet().removeIf(entry -> entry.getValue() == null);
普通删除map空值
Map<String, String> params=new HashMap<>();
params.put("ccc","null");
params.put("bbb","");
params.put("aaa",null);
params.put("ggg",null);
Iterator<Map.Entry<String, String>> it = params.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String, String> entry = it.next();
if(entry.getValue() == null)
it.remove();//使用迭代器的remove()方法删除元素
}
idea给出提示
image.png
修改后的代码,瞬间清爽了!真一行搞定
Map<String, String> params=new HashMap<>();
params.put("ccc","null");
params.put("bbb","");
params.put("aaa",null);
params.put("ggg",null);
params.entrySet().removeIf(entry -> entry.getValue() == null);
运行结果
image.png
网友评论