【发布时间】:2018-02-28 12:19:46
【问题描述】:
我正在尝试按(映射)进行分组,然后将值列表转换为不同的列表。
我有地区文件清单:
List<DistrictDocument> docs = new ArrayList<>();
然后我将其流式传输并按城市分组:
Map<String, List<DistrictDocument>> collect = docs.stream()
.collect(Collectors.groupingBy(DistrictDocument::getCity));
我还有一个方法,它获取 DistrictDocument 并从中创建 Slugable:
private Fizz createFizz(DistrictDocument doc) {
return new Fizz().name(doc.getName()).fizz(doc.getFizz());
}
有没有办法将该方法放入我上面的流中,以便我得到 Map<String, List<Fizz>> ?
我尝试将第二个参数添加到 groupingBy 但找不到合适的方法并且总是出现编译错误。
编辑:
如果我的 createFizz 返回 List<Fizz> 怎么办?有没有一个选项可以在 Collectors.mapping 中平展这个列表,因为我仍然想要 Map<String, List<Fizz>> 而不是 Map<String, List<List<Fizz>>>
【问题讨论】:
标签: java java-8 java-stream