0
JUNG의 특정 노드 컬렉션에서 도달 할 수있는 모든 노드 집합을 찾는 효율적인 방법을 찾고 있습니다. 어떻게해야할지 모르겠다. 한 가지 해결책은 특정 컬렉션의 각 노드의 이웃을 가져 와서이 프로세스와 관련하여 새 노드를 추가하지 않을 때까지 수행하는 것입니다. 하지만 아마 더 효율적인 방법이있을 것이라고 생각합니다. 그게 뭔지 말해 줄래? 직접적인 접근 방식은 간단한 너비 우선 탐색 (http://en.wikipedia.org/wiki/Breadth-first_search를) 할 수JUNG을 사용하여 그래프로 도달 가능한 노드 집합
private HashSet<Customer> getReachableNodes(Collection<Customer> churners, DirectedSparseGraph<Customer, Transaction> net) {
HashSet<Customer> reachableNode = new HashSet<Customer>();
for (Customer churner : churners) {
for(Customer neighbor:net.getVertices()){
if(isNeighbor(neighbor,churners,net)) reachableNode.add(neighbor)
}
}
return reachableNode ;
}
성능 측면에서 어느 것이 더 낫습니까? LinkedHashSet 또는 일반 hashSet을 사용합니까? –
Asymptotically, 그들은 동일합니다. 예 : 삽입은 두 경우 모두 O (1)을 필요로합니다. LinkedHashMap에서 링키지를 유지 보수하는 것은 이론적으로 오버 헤드가 일부 포함되지만 무시할 수 있어야합니다 (예를 들어, LinkedHashMap을 반복하는 것은 HashMap을 반복하는 것보다 빠름) – Marco13