Java 8流:按列表分组到平面地图

Java 8 stream: list to flat map grouped by

本问题已经有最佳答案,请猛点这里访问。

我有以下情况。(伪代码)

1
2
3
4
5
6
class A {
  id;
  List bs;
}

class B {}

我想知道如何转换List os As - > Bs的地图

1
2
3
4
5
6
List<A> as;

// the Map key is A.id (Map<A.id, List>)
Map<Integer, List> bs = as.stream()
                       .map(a ->a.getBs())
                       .collect(// I dont know what to add here ???);


好像你想要这样的时间:

1
2
 Map<Integer, List> bs = as.stream()
        .collect(Collectors.toMap(A::getId, A::getBs));