java - Collectors.groupingBy(...) 的返回类型是什么?
问题描述
我有一个MultiValueMap<String, String>
,假设我想按密钥的长度对其进行分组。
MultiValueMap<String, String> map = // Some defined MultiValueMap ...
map.entrySet().stream().collect(Collectors.groupingBy(x -> {
return x.getKey().length();
}));
问题是,我无法弄清楚return
上述语句的类型。我试过了,例如
Map<String, Set<Map.Entry<String, List<String>>>> groupped = map.entrySet().stream().collect(Collectors.groupingBy(x -> {
return x.getKey().length();
}));
但后来我得到x.getKey()
无法解决。
解决方案
它应该返回Map<Integer, List<Map.Entry<String, String>>>
而不是 Map<String, Set<Map.Entry<String, List<String>>>>
.
请注意您在上面包含的String
键和值,它应该是键和值,因为您正在使用的这个重载返回 a:Set<...>
Integer
List<...>
groupingBy
Map<K, List<T>>
其键是将分类函数应用于输入元素所产生的值,其对应的值是包含输入元素的列表,这些输入元素映射到分类函数下的关联键。
推荐阅读
- android - Livedata 数据变化模式
- python - Django Signals - 在模型创建时创建文件夹
- javascript - jQuery $(this).data() 返回未定义
- php - 作曲家在linux上给出openssl错误消息php7
- html - 如何在使用flutter_html插件的flutter中自定义UL > LI
- flutter - 颤振条子列表标签栏底部溢出错误
- c - 实现一个 C 函数,该函数在给定字符上拆分字符串并在拆分后返回字符串数组(以及数组长度)
- django - 在django中创建帐户后无法登录
- python - 检查一列中的任何字符串是否与另一列中的任何字符串匹配
- wpf - 添加自定义组合框滚动条样式 wpf