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 ???); |
-
Map或Map?
-
对于一个键,你打算用几个值做什么?
-
抱歉,我的意思是Map <整数,列表>,(更正)
-
在这里,我给出了很多例子。 您可能会发现它对您的问题javagists.com/java-8-streams-list-to-map-examples很有用
好像你想要这样的时间:
1 2
| Map <Integer, List > bs = as. stream()
. collect(Collectors. toMap(A ::getId, A ::getBs )); |
-
假设id是唯一的......
-
@shmosel同意......
-
我的解释是OP想要分组并压平多个bs,但我可能是错的。
-
@shmosel事实上,最初的问题背景和问题标题仍然属于那里的直觉。