0
Stream API를 배우기 시작했으나이 API를 통해 만들 수 없습니다. 내가 그래프를 구현하고있어개체 집합의 스트림 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 나 다음지도를 할 수 있도록하지 않습니다했습니다.
몇 가지 힌트를 주실 수 있습니까?
대신 'flatMap'을 사용하십시오. 'flatMap (node -> node.getConnections(). stream())' –
사이드 노트 : 당신은 당신의 API를 재고해야 할 수도 있습니다. 왜 Node에 노드 이름을 래핑하겠습니까? 그런 다음 노드를 연결할 때 String으로 참조 할 수 있습니까? connectNodes는 Node 유형을 가져야합니다. – aglassman
그래, 처음에 나는 노드 (노드, 노드)에 연결하려고했지만, HashSet 때문에 그 노드를 얻는 데 정말로 시간이 걸렸다. 이제 Node 객체에서 id를 String으로 사용합니다. 더 나은 접근 방법이 있습니까? @SergheyBishyr, 고마워요, 시도해 볼게요. – Jump3r