查找具有最高出现次数的地图值

Ser*_*kov 0 java map

我有一个 Map<Integer,Integer>

 1 10
 2 10
 3 20
 5 20
 6 11
 7 22
Run Code Online (Sandbox Code Playgroud)

如何找到地图的最大重复值?在这种情况下 - 即10和20.两种情况下重复计数为2.

VH-*_*NZZ 7

不要重新发明轮子并使用类的frequency方法Collections:

public static int frequency(Collection<?> c, Object o)
Run Code Online (Sandbox Code Playgroud)

如果你需要计算所有值的出现次数,请巧妙地使用Map和循环:)或者使用frequency上面的方法将值放在Set的每个元素的Set和循环中.HTH

如果您喜欢使用lambdas的功能更强大的Java 8单线程解决方案,请尝试:

Map<Integer, Long> occurrences = 
  map.values().stream().collect(Collectors.groupingBy(w -> w, Collectors.counting()));
Run Code Online (Sandbox Code Playgroud)