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));
    }

效果示例 :

相关推荐
南玖yy20 分钟前
数据结构C语言练习(设计循环队列)
java·c语言·数据结构
烁34722 分钟前
每日一题(小白)字符串娱乐篇16
java·开发语言·算法·娱乐·暴力
努力努力再努力wz38 分钟前
【c++深入系列】:类和对象详解(下)
java·运维·c语言·开发语言·c++
优雅的38度1 小时前
SpringBoot 3.0+ 整合 Swagger 3.0
java·后端
Pitayafruit1 小时前
🔥 Spring Boot 3 整合 zxing:轻松生成二维码的指南
java·spring boot·后端
雷渊1 小时前
redis如何实现发布/订阅功能?
java·后端·面试
雷渊1 小时前
redis中的zset怎么实现的?
java·后端·面试
Anarkh_Lee2 小时前
图解JVM - 21.JVM运行时参数
java·jvm·后端
Anarkh_Lee2 小时前
图解JVM - 22.分析GC日志
java·jvm·后端
kong79069282 小时前
SpringBoot整合SSM
java·spring boot·ssm