Java8流:列表到按分组的平面图

Java8流:列表到按分组的平面图,java,java-8,java-stream,Java,Java 8,Java Stream,我有以下情况。(伪代码) A类{ 身份证件 名单b; } B类{} 我想知道如何将列表操作系统转换为->Bs地图 List<A> as; // the Map key is A.id (Map<A.id, List<B>>) Map<Integer, List<B>> bs = as.stream() .map(a ->a.getBs())

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

A类{
身份证件
名单b;
}
B类{}
我想知道如何将列表操作系统转换为->Bs地图

List<A> as;

// the Map key is A.id (Map<A.id, List<B>>)
Map<Integer, List<B>> bs = as.stream()
                       .map(a ->a.getBs())
                       .collect(// I dont know what to add here ???);
列表为;
//Map键是A.id(Map)
映射bs=as.stream()
.map(a->a.getBs())
.collect(//我不知道在这里添加什么??);

似乎你想要这样的时间:

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

Map
Map
?一个键的几个值怎么办?对不起,我指的是Map,(更正)这里我给出了很多例子。假设
id
是唯一的,你可能会发现它对你的问题很有用…@shmosel同意…我的解释是OP想要将多个
bs
分组并展平,但我可能错了。@shmosel确实,最初的问题上下文和问题标题仍然符合直觉。
 Map<Integer, List<B>> bs = as.stream()
        .collect(Collectors.toMap(A::getId, A::getBs));