Java 使用Guava图按ID获取节点

Java 使用Guava图按ID获取节点,java,hashmap,guava,graph-theory,jgraph,Java,Hashmap,Guava,Graph Theory,Jgraph,我正在寻找一种使用标识符检索节点的方法,只使用Guava库。 我不喜欢使用外部哈希集,我已经考虑过了,因为我的数据集太大了 我想要一种使用索引、字符串或整数类型索引所有图形节点的方法,并且以后能够高效地检索节点 现在,我可以迭代我的MutableGraph的节点集,并检查对象是否相等,如下所示: MutableGraph<CategoryNode> wikiGraph = GraphBuilder.directed().build(); for (MyNode nod

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

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

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

    MutableGraph<CategoryNode> wikiGraph = GraphBuilder.directed().build();
    for (MyNode node : wikiGraph.nodes()) {
        if(node.equals(new MyNode("myStringIndex"))) {
            // object found !
            return node;
        }
    }
MutableGraph-wikiGraph=GraphBuilder.directed().build();
对于(MyNode节点:wikiGraph.nodes()){
if(node.equals(newmynode(“myStringIndex”)){
//找到目标了!
返回节点;
}
}
但是,如果节点数量变大,这将是非常低效的。
Guava中是否有用于索引图形节点的内置解决方案,或者我是否需要使用其他库?

如果您正在寻找索引图形节点的方法,很遗憾Guava没有内置此功能。考虑使用,通过我的理解,您可以为任何集合(如一组图形节点)这样做。


或者,如果您只是在寻找一个内存效率更高的集合实现,那么有很多选项,包括但不限于和。

任何库都可能会使用HashSet或类似工具。去用它吧。我不确定我是否完全理解你的意图。集合索引解决方案会像“s”、“s”或“help”这样的内存效率更高的集合实现吗?@jbduncan是的。谢谢你的帮助,我一直在寻找一个内置的番石榴解决方案,但这会成功的。如果你能在下面发布你的答案,我会接受它作为解决方案并关闭topic@Jean-皮尔里科夫(完)