java Map删除值为null的元素 lamada表达式一行代码就搞定

由于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