带有Java流的2D地图

时间:2017-11-14 16:14:22

标签: java java-stream

我正在学习Java Streams,并希望用java 8功能替换下面的代码。

我有一个带有X和Y坐标以及方向箭头的点列表:

final List<PathStep> path;

我希望将上面的列表转换为地图的映射,如下面的Java 7代码:

    final Map<Integer, Map<Integer, Direction>> map = new HashMap<>();

    for (final PathStep pathStep : path) {
        final Coordinate coordinate = pathStep.getCoordinate();
        final int y = coordinate.getY();

        if (!map.containsKey(y)) {
            map.put(y, new HashMap<>());
        }

        final Map<Integer, Direction> mapY = map.get(y);
        mapY.put(coordinate.getX(), pathStep.getDirection());
    }

我能够使用stream.filter()和stream.map功能,但我无法用java 8功能替换上面的代码。

任何指针都会受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

您可以使用items = ['a', 'b', 'c','d'] from itertools import permutations for p in permutations(items): print(p) items = ['a', 'b', 'c','f'] from itertools import permutations for p in permutations(items): print(p) 和嵌套groupingBy()进行收集。假设toMap()path

Collection<PathStep>