【发布时间】:2019-12-06 03:55:09
【问题描述】:
我试图注意哈希映射中的最小值并在另一种方法中使用它的键。我也想重复执行此操作并排除先前找到的最小值。谢谢!
Entry<Integer, Integer> min = null;
for (Entry<Integer, Integer> entry : graph.myMap.entrySet()) {
if (min == null || min.getValue() > entry.getValue()) {
min = entry;
int minV = min.getKey();
deleteVertex(graph, minV);
}
}
【问题讨论】:
-
如果你有 100 个人,并且你想找到最小的那个,你不可能知道是谁,直到你询问了 每个 个人的年龄。因此,只有在循环结束后 才能知道谁是最年轻的。但是您的代码会在找到第一个条目或任何低于之前条目的条目后立即删除一个顶点。
-
最简单的方法是按值对条目进行排序,然后找到第一个、第二个、第三个最年轻的人就很简单了。
-
是的 JB Nizet 谢谢我把最后两行放在 for 循环之外。另外,感谢 michalk 的建议,我应该根据价值观进行排序,这将使我的生活更轻松。
-
您为此任务使用了错误的数据结构。
标签: java hash hashmap hashtable