java - 如何迭代 HashMap<String, Set<String>> 并返回最大的 Set<String> ?

标签 java

我试图弄清楚如何返回 HashMap 中最大的集合。我知道基本的做法,但我无法做到正确。

我尝试通过执行以下代码来迭代 HashMap 中的所有键。我还刚刚意识到,通过执行这段代码,我只能返回最大集合的大小,而不是实际集合本身。有更好的方法吗?我将非常感谢任何帮助!谢谢!

Map<String, Set<String>> category = new Hashmap<String, Set<String>>();
int largest = //someInt;
for(String d : category.keySet()) {
    if (category.get(d).size() > //largest)
        largest = category.get(d).size();
} return largest;

最佳答案

虽然其他答案已经展示了如何修复代码,但这里是在单个语句中完成此操作的另一种方法:

Set<String> largestSet = category.values().stream()
        .max(Comparator.comparingLong(Set::size))
        .orElse(null);

关于java - 如何迭代 HashMap<String, Set<String>> 并返回最大的 Set<String> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54585080/

相关文章:

java - Google Collections 源不编译

java - 在 Java 中从 Arraylist 内引用父 Arraylist

java - 命令模式与反射

java - Java对象的比较

java - Ant javac : package does not exist

java - 如何在数据点上添加点击监听器?

java - 程序在没有任何输入的情况下输出 IntegerSet 的十六进制?

java - AffdexMe,Android,LicenseException : could not open license file

java - 两天的 hibernate 训练应该包括什么

java - 使用 protected 文件授予 word 权限