Java 将Map里面的 ‘空’值 移除

java 复制代码
    public static  void main(String[] args) {

        Map<String, Object> map=new HashMap<>();
        map.put("A","");
        map.put("B",new ArrayList<>());
        map.put("C",null);
        map.put("D",123);
        System.out.println(map.toString());
        Map<String, Object> mapNew = removeEmpty(map);
        System.out.println(mapNew.toString());
    }

如: 对于 空的list ,以及 双引号的 字符串,都认为是空。

移除方法 :

java 复制代码
    private  static Map<String, Object> removeEmpty(Map<String, ?> paramsMap) {
        return paramsMap.entrySet().stream()
                .filter(entry -> entry.getValue() != null)
                .filter(entry -> !(entry.getValue() instanceof String) || StringUtils.isNotEmpty((String) entry.getValue()))
                .filter(entry -> !(entry.getValue() instanceof List) || CollectionUtils.isNotEmpty((List<?>) entry.getValue()))
                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
    }

效果示例 :

相关推荐
uup1 分钟前
秒杀系统中的超卖与重复下单问题
java
用户8307196840824 分钟前
Spring注入原型Bean,为啥”新“对象“不翼而飞”?
java
初听于你7 分钟前
Thymeleaf 模板引擎讲解
java·服务器·windows·spring boot·spring·eclipse
刘 大 望10 分钟前
JVM(Java虚拟机)
java·开发语言·jvm·数据结构·后端·java-ee
超级种码10 分钟前
JVM 字节码指令活用手册(基于 Java 17 SE 规范)
java·jvm·python
元亓亓亓11 分钟前
LeetCode热题100--155. 最小栈--中等
java·算法·leetcode
SadSunset14 分钟前
(3)第一个spring程序
java·后端·spring
高山上有一只小老虎16 分钟前
小红的双生串
java·算法
TDengine (老段)22 分钟前
人力减 60%:时序数据库 TDengine 助力桂冠电力实现 AI 智能巡检
java·大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
yaoxin52112334 分钟前
263. Java 集合 - 遍历 List 时选用哪种方式?ArrayList vs LinkedList
java·开发语言·list