传入一个list map,寻找最大的key和对应的vlaue

我们经常遇到需要从一个list map中获取最大的金额。

java 复制代码
public static Map.Entry<String, BigDecimal> findMaxField(List<Map<String, Object>> listMap) {
        String maxField = null;
        BigDecimal maxValue = BigDecimal.valueOf(Double.MIN_VALUE);

        for (Map<String, Object> map : listMap) {
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                if (entry.getValue() instanceof BigDecimal) {
                    BigDecimal value = (BigDecimal) entry.getValue();
                    if (value.compareTo(maxValue) > 0) {
                        maxValue = value;
                        maxField = entry.getKey();
                    }
                }
            }
        }
        return new AbstractMap.SimpleEntry<>(maxField, maxValue);
    }

、、解读

首先,代码初始化了一个maxField和maxValue变量,用于记录最大值对应的键和最大值本身。

然后,代码对List中的每个Map进行迭代,然后再对每个Map中的每个键值对进行迭代。如果值的类型是BigDecimal,那么就进行比较,找出最大值,并更新maxValue和maxField。

最后,方法返回一个新建的Map.Entry对象,其中包含最大值对应的键和最大值本身。

相关推荐
alonewolf_9922 分钟前
深入Spring核心原理:从Bean生命周期到AOP动态代理全解析
java·后端·spring
天远Date Lab23 分钟前
Python实现用户消费潜力评估:天远个人消费能力等级API对接全攻略
java·大数据·网络·python
没有bug.的程序员8 小时前
服务安全:内部服务如何防止“裸奔”?
java·网络安全·云原生安全·服务安全·零信任架构·微服务安全·内部鉴权
一线大码8 小时前
SpringBoot 3 和 4 的版本新特性和升级要点
java·spring boot·后端
weixin_440730508 小时前
java数组整理笔记
java·开发语言·笔记
weixin_425023008 小时前
Spring Boot 实用核心技巧汇总:日期格式化、线程管控、MCP服务、AOP进阶等
java·spring boot·后端
一线大码8 小时前
Java 8-25 各个版本新特性总结
java·后端
2501_906150569 小时前
私有部署问卷系统操作实战记录-DWSurvey
java·运维·服务器·spring·开源
better_liang9 小时前
每日Java面试场景题知识点之-TCP/IP协议栈与Socket编程
java·tcp/ip·计算机网络·网络编程·socket·面试题
niucloud-admin9 小时前
java服务端——controller控制器
java·开发语言