在 Java 映射中查找与最大值关联的键
获取与地图中的最大值关联的键的最简单方法是什么?
我相信 Collections.max(someMap) 将返回 max Key,当您需要与 max 值对应的键时。
获取与地图中的最大值关联的键的最简单方法是什么?
我相信 Collections.max(someMap) 将返回 max Key,当您需要与 max 值对应的键时。
为了完整起见,这里有一个java-8的方法
countMap.entrySet().stream().max((entry1, entry2) -> entry1.getValue() > entry2.getValue() ? 1 : -1).get().getKey();
或
Collections.max(countMap.entrySet(), (entry1, entry2) -> entry1.getValue() - entry2.getValue()).getKey();
或
Collections.max(countMap.entrySet(), Comparator.comparingInt(Map.Entry::getValue)).getKey();
基本上,您需要迭代地图的条目集,记住“当前已知的最大值”和与之关联的键。(当然,或者只是包含两者的条目。
例如:
Map.Entry<Foo, Bar> maxEntry = null;
for (Map.Entry<Foo, Bar> entry : map.entrySet())
{
if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0)
{
maxEntry = entry;
}
}