Получить узел по идентификатору с графом гуавы - PullRequest
0 голосов
/ 17 мая 2018

Я ищу способ получить узел, используя идентификатор, используя только библиотеку Guava.Я предпочитаю не использовать внешний HashSet, который я рассмотрел, потому что мой набор данных слишком большой.

Я бы хотел, чтобы индексировать все мои узлы графа, используя индекс, используя String или целочисленный тип,и позже я смогу эффективно извлекать мои узлы.

Прямо сейчас я могу перебирать набор узлов моего MutableGraph и проверять равенство объектов, например:

    MutableGraph<CategoryNode> wikiGraph = GraphBuilder.directed().build();
    for (MyNode node : wikiGraph.nodes()) {
        if(node.equals(new MyNode("myStringIndex"))) {
            // object found !
            return node;
        }
    }

Но этокрайне неэффективно, если количество узлов становится большим.Есть ли встроенное решение для индексации узлов графа в Гуаве или мне нужно использовать другую библиотеку?

1 Ответ

0 голосов
/ 18 мая 2018

Если вы ищете способ индексирования узлов вашего графа, к сожалению, в Guava не встроена эта функция. Рассмотрите возможность использования CQEngine , что, как я понимаю, позволяет вам делать это для любой коллекции (например, набор узлов графа).

В качестве альтернативы, если вам нужна реализация более эффективного набора памяти, существует широкий спектр опций, включая, но не ограничиваясь, Koloboke , fastutil и Коллекции Затмения .

...