小编goo*_*her的帖子

在嵌套数据结构上使用Java8流创建映射

我正在使用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)

java map nested-loops java-8 java-stream

5
推荐指数
1
解决办法
1868
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

map ×1

nested-loops ×1