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

相关推荐
forestsea9 分钟前
Java虚拟机面试题:内存管理(上)
java·开发语言
yueyekkx13 分钟前
Ubuntu24.04 LTS安装java8、mysql8.0
java·mysql·ubuntu
若水uy21 分钟前
静态分配动态绑定
java
程序员buddha39 分钟前
SpringBoot多环境配置文件切换
java·spring boot·后端
Java小白笔记1 小时前
IDEA中创建SpringBoot项目没有Java8
java·spring boot·intellij-idea
呦呦鹿鸣Rzh1 小时前
默认登陆界面的生成
java
长勺1 小时前
单例模式总结
java·开发语言·单例模式
zzhongcy1 小时前
【容易坑】mybatis中使用if标签比较两个字符串是否相等
java·tomcat·mybatis
ZFJ_张福杰2 小时前
【Flutter】多语言适配-波斯语RTL从右到左
java·开发语言
yaoxin5211232 小时前
86. Java 数字和字符串 - 数字
java·开发语言