传入一个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对象,其中包含最大值对应的键和最大值本身。

相关推荐
砍材农夫13 分钟前
物联网 基于netty构建mqtt协议规范(遗嘱与保留消息)
java·开发语言·物联网·netty
DFT计算杂谈16 分钟前
KPROJ编译教程
java·前端·python·算法·conda
重生之我是Java开发战士28 分钟前
【笔试强训】Week5:空调遥控, kotor和气球,走迷宫,主持人调度II,体操队形,二叉树的最大路径和,排序子序列,消减整数
java·算法·动态规划
郑重其事,鹏程万里1 小时前
表达式计算器(mvel2)
java
其实防守也摸鱼1 小时前
软件安全与漏洞--软件安全编码
java·前端·网络·安全·网络安全·web·工具
888CC++1 小时前
栈上分配 VS 堆分配 核心区别
java·开发语言·jvm
艾利克斯冰1 小时前
Java面试题汇总
java
我是一颗柠檬2 小时前
【JavaSE全面教学】Java集合框架下Day13(2026年)
java·开发语言·intellij-idea
vx-程序开发2 小时前
基于机器学习的动漫可视化系统的设计与实现-计算机毕业设计源码08339
java·c++·spring boot·python·spring·django·php
LCG元2 小时前
RAG工程指南:从基础检索到生产部署全解析
java·运维·数据库