java - 使用 Guava Graph 通过 ID 获取节点

标签 java hashmap guava graph-theory jgraph

我正在寻找一种仅使用 Guava 库使用标识符检索节点的方法。 我不想使用外部 HashSet,我已经考虑过,因为我的数据集太大。

我想要一种使用索引、字符串或整数类型来索引所有图形节点的方法,并且稍后能够有效地检索我的节点。

现在我可以迭代 MutableGraph 的节点集,并检查对象相等性,如下所示:

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

但是如果节点数量变大,效率就会非常低。 Guava 中是否有用于索引图节点的内置解决方案,或者我是否需要使用另一个库?

最佳答案

如果您正在寻找一种方法来索引图形节点,遗憾的是 Guava 没有内置此功能。请考虑使用 CQEngine ,据我了解,您可以对任何集合(例如一组图形节点)执行此操作。

或者,如果您只是在寻找内存效率更高的集合实现,则有多种选择,包括但不限于 Koloboke , fastutilEclipse Collections .

关于java - 使用 Guava Graph 通过 ID 获取节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50396569/

相关文章:

java - Eclipse luna - 内部错误,试图从 git 导入

java - 在 spring xml 配置中定义 guava HashBasedTable/Table

java - 为什么在 Eclipse 中使用 Guava 库时调试不起作用?

java - 在 JSP 中添加 Expires 或 Cache-Control header

java - 使用 Retrofit 和 GSON 解析 JSON,尝试解析和获取回调时出错。

java - Map.Entry.<Integer, Integer>comparingByValue() 中 <Integer,Integer> 的重要性是什么

java - 在嵌套 HashMap 中搜索字符串数组项

ruby - Ruby 哈希的增量

java - 如何在 Guava 中制作一个 "real"不可变的日期对象列表

java - 使用 java 将文本文件修剪到第一列