使用 Java 流查找 Map 中的最大列表大小

m. *_*ekk 1 java dictionary java-stream

我有一张表格的地图Map<String, List<Product>>

我想在这个映射中找到具有最大关联列表的字符串。

我已经尝试了很多很多事情。最近:

map.entrySet()
.stream()
.max(Comparator((String entry1, String entry2) -> Integer.compare(q4().get(entry1).size(), q4.get(entry2).size()));
Run Code Online (Sandbox Code Playgroud)

没有任何效果。

ern*_*t_k 5

如果您正在查找具有最大列表的键,您可以执行以下操作:

.max(Comparator.comparingInt(entry -> entry.getValue().size())).map(Entry::getKey)
Run Code Online (Sandbox Code Playgroud)

所以你的代码可以是

String result = map.entrySet().stream()
                   .max(Comparator.comparingInt(entry -> entry.getValue().size()))
                   .map(Map.Entry::getKey)
                   .orElse(null); //if map is empty
Run Code Online (Sandbox Code Playgroud)