You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找嵌套hashmap中最小deadline值对应的上层count键

实现思路

遍历外层哈希表的所有<count, 内层对象>键值对,逐次比对内层的deadline数值,全程维护当前最小deadline对应的count值,遍历完成后即可得到目标结果。

注意:如果存在多个count对应相同的最小deadline,下述默认实现返回最先遍历到的count值。如果需要返回所有符合条件的count,可将存储结果的变量改为列表,遇到deadline等于当前最小值时追加count即可。

各语言实现示例

Python

# 示例数据
data = {0: {"req": 5}, 1: {"req": 3}, 2: {"req": 1}, 3: {"req": 3}}

# 极简实现:按内层req值排序后取首个元素的键
min_count = min(data.items(), key=lambda item: item[1]["req"])[0]
print(min_count) # 输出结果为2

JavaScript

// 示例数据
const data = {0: {req: 5}, 1: {req: 3}, 2: {req: 1}, 3: {req: 3}}

let minDeadline = Infinity
let minCount = null
for (const count in data) {
  const currentDeadline = data[count].req
  if (currentDeadline < minDeadline) {
    minDeadline = currentDeadline
    minCount = Number(count) // 不需要数字类型可直接赋值count
  }
}
console.log(minCount) // 输出结果为2

Java

import java.util.HashMap;
import java.util.Map;

public class FindMinCount {
    public static void main(String[] args) {
        // 示例数据
        Map<Integer, Map<String, Integer>> data = new HashMap<>();
        data.put(0, Map.of("req", 5));
        data.put(1, Map.of("req", 3));
        data.put(2, Map.of("req", 1));
        data.put(3, Map.of("req", 3));

        int minDeadline = Integer.MAX_VALUE;
        int minCount = -1;
        for (Map.Entry<Integer, Map<String, Integer>> entry : data.entrySet()) {
            int currentDeadline = entry.getValue().get("req");
            if (currentDeadline < minDeadline) {
                minDeadline = currentDeadline;
                minCount = entry.getKey();
            }
        }
        System.out.println(minCount); // 输出结果为2
    }
}

内容的提问来源于stack exchange,提问作者Godogo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 08:39:01