按照分组并映射值

18 浏览
0 Comments

按照分组并映射值

我正在尝试按城市进行分组(映射),然后将值列表转换为不同的列表。

我有一个DistrictDocuments的列表:

List docs = new ArrayList<>();

然后我在其上进行流操作,并按城市进行分组:

Map> 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>

我尝试向groupingBy添加第二个参数,但找不到正确的方法,一直出现编译错误。

编辑:

如果我的createFizz返回List,有没有选项在Collectors.mapping中将此列表扁平化,因为我仍然希望得到Map>而不是Map>>

0