我正在使用Java 8的流搜索这段代码的优雅等价物:
Collection<X> xs = ...;
Map<B, A> map = new SomeMap<>();
for (X x : xs) {
A a = x.getA();
Collection<B> bs = x.getBs();
for (B b : bs)
map.put(b, a);
}
Run Code Online (Sandbox Code Playgroud)
这对我来说有点太棘手,因为我无法想到使用flatMap和Collectors.toMap组合实现所需的功能.
可编辑的例子:
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class Application {
public static class A {}
public static class B {}
public static class X {
private A a;
private Collection<B> bs;
public X(A a, Collection<B> bs) {
this.a = a;
this.bs = …Run Code Online (Sandbox Code Playgroud)