在Java流中使用collectors.groupingBy修改返回的映射值类型
我有以下在Java流中使用collectors.groupingBy修改返回的映射值类型,java,java-8,Java,Java 8,我有以下条目的类定义- public class Entry { private String key; private String Value; // getters and setters // equals hashcode toString } 我从数据库中获得了条目对象的列表。 我想根据键对它们进行分组,结果映射的值应该是Set 我试过了,最后得到了下面的代码 Map<String, Set<Entry>> groupedEn
条目的类定义
-
public class Entry {
private String key;
private String Value;
// getters and setters
// equals hashcode toString
}
我从数据库中获得了条目
对象的列表。
我想根据键对它们进行分组,结果映射的值应该是Set
我试过了,最后得到了下面的代码
Map<String, Set<Entry>> groupedEntries =
entryList.findAll()
.stream()
.collect(Collectors.groupingBy(ek -> ek.getKey().toLowerCase(), Collectors.toSet()));
Map-groupedEntries=
entryList.findAll()
.stream()
.collect(Collectors.groupingBy(ek->ek.getKey().toLowerCase(),Collectors.toSet());
这个代码的问题是结果类型是Map
,但我想成为Map
是否可以在一次收集中完成此操作 使用
映射
收集器:
.collect(Collectors.groupingBy(ek -> ek.getKey().toLowerCase(),
Collectors.mapping(Entry::getValue, Collector.toSet())));
您正在按
ek->ek.getPlatform()
进行分组。它对应于键还是值?嗨,阿诺-我已经更新了我的问题,但答案总是正确的same@Eugene似曾相识。完全同意。