从hashmap获取具有最大值的键?

ste*_*ven 12 java hashmap

我有这样的HashMap定义......

HashMap<String,Integer> uniqueNames = new HashMap<String,Integer>();
Run Code Online (Sandbox Code Playgroud)

它存储名称和该名称的出现.例如...

uniqueNames.put("lastname",42);
Run Code Online (Sandbox Code Playgroud)

如何获得出现次数最多的名称?

有关更多信息,我正在使用"人物"的二叉搜索树,将唯一的名称和频率存储在一个HashMap.我想要做的是打印最常见的姓氏,有人告诉我使用,HashMap因为我想存储一个String与一起Integer.也许我应该使用一个类来存储名称和频率?请有人请提供一些建议.

Tom*_*rys 15

如果你必须使用HashMap,那么最简单的方法可能就是遍历Map寻找最大值

Entry<String,Integer> maxEntry = null;

for(Entry<String,Integer> entry : uniqueNames.entrySet()) {
    if (maxEntry == null || entry.getValue() > maxEntry.getValue()) {
        maxEntry = entry;
    }
}
// maxEntry should now contain the maximum,
Run Code Online (Sandbox Code Playgroud)