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

标签 java

<分区>

我在 Java 中得到了这种类型的 map Map<Group, List<Person>> 这是一组具有完整成员列表的组。 我想找到使用流和 lambda 表达式的组中数量最多的人,我尝试了一些但没有成功。 你能帮我吗?谢谢

最佳答案

您需要的是 .flatMap(),然后是 .collect(),它可以找到整个 Map 中每个人的出现频率.

像这样:

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

Ideone Tested

关于java - 计算各种列表中出现的次数 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37468161/

相关文章:

java - 如果常量会阻止使用字符串参数,优化器是否会阻止创建字符串参数?

java - 为什么这个js代码的RSA加密结果和java的RSA标准代码不一样?

java - 无法从列表中删除对象

java - Ant <javac> 由于 "package javax.servlet does not exist"而失败

java - 如何使用 rawquery 在 Room Library 中创建表?

java - 在 Java 中将给定字符串转换为 List<Class>

java - 有人可以解释 com.google.inject 的作用吗?

java - Spring MVC 将请求参数绑定(bind)到 POJO 字段

java - 制作一个可以绘制到 Canvas 上的类

java - 从 Java 中的变量获取类