在Hashmap的Hashmap中查找最大值

时间:2013-11-19 21:41:28

标签: java hashmap hashtable

所以我对Java仍然相对较新,这个问题可能相当微不足道,但我在回答问题时遇到了问题。

我正在尝试在我创建的hashmap中找到最大值。我初始化了hashmap并填充了它,但这是结构:

HashMap<Double,HashMap<Double,Double>>

任何帮助都会很棒。

谢谢!

编辑:为了澄清,我想知道散列表中最大条目的值

1 个答案:

答案 0 :(得分:3)

所以你有一个充满嵌套地图的根图。 您将迭代根映射中的所有值 - 获取嵌套映射。然后迭代每个嵌套映射上的每个值。

Compexity将为O(n),其中n - 所有嵌套映射中所有键的数量加上根映射中的键数。

如果您使用HashMaps,我认为您无法更快地找到最大值。

代码如下:

final HashMap<Double, HashMap<Double, Double>> data = new HashMap<Double, HashMap<Double, Double>>();

Double prev = null;
for (final HashMap<Double, Double> nestedMap : data.values()) {
    for (final Double value : nestedMap.values()) {
        if (prev == null) {
            prev = value;
            continue;
        }
        prev = Math.max(value, prev);
    }
}

System.out.println("The max value is " + prev);