从一组对象中流API对象

时间:2017-05-03 16:16:25

标签: java java-stream graph-algorithm hashset

我开始学习Stream API,但无法通过这个。

我正在实施图表,所以我有这样的课程:

图表 - >节点 - >边缘

图中的节点存储在Hashset中;边缘也是边缘。

此处的代码:

    Graph g = new Graph("Graph 1");
    g.addNode(new Node("A"));
    g.addNode(new Node("B"));
    g.connectNodes("A","B", true); //nodeA, nodeB, bidirectional

    System.out.println(g);

    g.getNodes().stream().map(Node::getConnections);

我不知道下一行是做什么的。 此时它返回边的HashSet。

我试过

    g.getNodes().stream().map(Node::getConnections).map(x->x.getNodeB().getName()).forEach(System.out::println);

通过边缘节点名称获得第二个连接,  但是IDE不允许我做下一张地图。

你能提一些提示吗?

1 个答案:

答案 0 :(得分:0)

使用flatMap作为Serghey建议就像魅力一样。

g.getNodes().stream().map(Node::getConnections).flatMap(x->x.stream()).map(x->x.getNodeB().getName()).forEach(System.out::println);