计算各种列表中Java的出现次数

Gia*_*nna 3 java

我在Java中有一个这种类型的地图, Map<Group, List<Person>> 它是一组包含整个成员列表的组.我想找到使用流和lambda表达式在最大数量的组中的Person,我尝试了一些但是没有成功.你能帮我吗?谢谢

4ca*_*tle 5

你需要的是.flatMap()一个能.collect()找到每个人整体频率的a Map.

像这样的东西:

Person socialButterfly = groupMap.values()
    .stream()
    .flatMap(Collection::stream)
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
    .entrySet().stream()
    .max(Map.Entry.comparingByValue())
    .get().getKey();
Run Code Online (Sandbox Code Playgroud)

Ideone经过测试