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

效果示例 :

相关推荐
明天更新4 小时前
oss存储分片的简单思路
java
凌冰_4 小时前
IDEA2025 搭建Web并部署到Tomcat运行Servlet+Thymeleaf
java·servlet·tomcat
Seven974 小时前
剑指offer-53、表达数值的字符串
java
木楚4 小时前
在idea中构建传统ssm框架的步骤和方式
java·ide·intellij-idea
董世昌414 小时前
JavaScript 中 undefined 和 not defined 的区别
java·服务器·javascript
Lisonseekpan4 小时前
Kafka、ActiveMQ、RabbitMQ、RocketMQ对比
java·后端·kafka·rabbitmq·rocketmq·activemq
我是华为OD~HR~栗栗呀4 小时前
(华为od)21届-Python面经
java·前端·c++·python·华为od·华为·面试
夕阳下的一片树叶9134 小时前
后端java遇到的问题
java·开发语言
CodeAmaz4 小时前
RocketMQ整体工作流程_详解
java·rocketmq·rocketmq整体流程
刘一说4 小时前
ES6+核心特性全面浅析
java·前端·es6