下面是Entry
的类定义:
public class Entry {
private String key;
private String Value;
// getters and setters
// equals hashcode toString
}
我从数据库里得到了Entry
对象的列表。我想根据结果的键和值对它们进行分组,结果映射应该是Set<value>
。
我尝试并以下面的代码结束。
Map<String, Set<Entry>> groupedEntries =
entryList.findAll()
.stream()
.collect(Collectors.groupingBy(ek -> ek.getKey().toLowerCase(), Collectors.toSet()));
这段代码的问题是结果类型是Map<String, Set<Entry>>
,但我希望是Map<String, Set<String>>
。
是否可以在单次收集中完成此操作?
发布于 2018-07-31 00:49:26
使用mapping
收集器:
.collect(Collectors.groupingBy(ek -> ek.getKey().toLowerCase(),
Collectors.mapping(Entry::getValue, Collector.toSet())));
https://stackoverflow.com/questions/51598772
复制相似问题