Java流反转多图

时间:2016-08-06 19:34:45

标签: java-8 java-stream

概念:两种类型AB,每种都可以映射到另一种类型的多个元素。

假设我有一个输入列表:List<A> aList,如何使用Java 8流生成地图Map<B, List<A>> result

Map<B, List<A>> result = aList.stream().flatMap(a -> a.getBs().stream().map(b -> new Tuple2<>(b, a)) // just create pairs of (B, A) for each a
                              .collect(Collectors.groupingBy(???)); // then group these pairs by b

或者Guava或Apache Comms会提供这样的功能吗?

谢谢!

更新

感谢@Tukani,请查看this post以获得答案。

0 个答案:

没有答案