Для своего проекта я использовал слегка модифицированную версию решения Джона и Фаты.В случае нескольких записей с одинаковым значением, он возвращает последнюю найденную запись:
public static Entry<String, Integer> getMaxEntry(Map<String, Integer> map) {
Entry<String, Integer> maxEntry = null;
Integer max = Collections.max(map.values());
for(Entry<String, Integer> entry : map.entrySet()) {
Integer value = entry.getValue();
if(null != value && max == value) {
maxEntry = entry;
}
}
return maxEntry;
}