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

相关推荐
柳贯一(逆流河版)1 小时前
Spring 三级缓存:破解循环依赖的底层密码
java·spring·缓存·bean的循环依赖
该用户已不存在3 小时前
OpenJDK、Temurin、GraalVM...到底该装哪个?
java·后端
TT哇3 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee
Tina学编程3 小时前
48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径
java·算法
青川入梦3 小时前
MyBatis极速通关上篇:Spring Boot环境搭建+用户管理实战
java·开发语言·mybatis
执子手 吹散苍茫茫烟波4 小时前
leetcode415. 字符串相加
java·leetcode·字符串
小韩博4 小时前
网络安全(Java语言)脚本 汇总(二)
java·安全·web安全
萤丰信息4 小时前
技术赋能安全:智慧工地构建城市建设新防线
java·大数据·开发语言·人工智能·智慧城市·智慧工地
带刺的坐椅4 小时前
Java MCP 的鉴权?好简单的啦
java·鉴权·mcp·solon-ai
Pocker_Spades_A4 小时前
飞算JavaAI家庭记账系统:从收支记录到财务分析的全流程管理方案
java·开发语言