Я ищу эффективный способ нахождения набора всех узлов, доступных из определенной коллекции узлов в JUNG. Я не уверен, как это сделать. Одним из решений было бы получить соседей каждого узла конкретной коллекции и сделать это до тех пор, пока новый узел не добавится к этому процессу. Но я думаю, что, возможно, более эффективный способ будет доступен. Не могли бы вы рассказать мне, что бы это было? (Ниже код моей реализации)Набор достижимых узлов в графе с использованием 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? –
Асимптотически они равны. Например. вставка принимает O (1) в обоих случаях. Манипуляция связью в LinkedHashMap будет * теоретически * включать некоторые накладные расходы, но она должна быть незначительной (и, например, итерация по LinkedHashMap должна быть быстрее, чем итерация по HashMap) – Marco13