所以我对Java仍然相对较新,这个问题可能相当微不足道,但我在回答问题时遇到了问题。
我正在尝试在我创建的hashmap中找到最大值。我初始化了hashmap并填充了它,但这是结构:
HashMap<Double,HashMap<Double,Double>>
任何帮助都会很棒。
谢谢!
编辑:为了澄清,我想知道散列表中最大条目的值
答案 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);