gpt4 book ai didi

java - Guava:具有逆插入的 nodeOrder 的 MutableGraph

转载 作者:行者123 更新时间:2023-12-01 17:39:52 27 4
gpt4 key购买 nike

我想从 Guava 创建一个 MutableGraph 类型的对象,如下所示:

MutableGraph<Integer> subgraph = GraphBuilder.undirected().nodeOrder(ElementOrder.insertion()).build();

当我使用迭代器从图中获取节点时,顺序是它们的插入。我需要反向获取它们,以便我可以通过一次调用

检索最后添加的顶点
subgraph.nodes().iterator().next()

最佳答案

Graph 在底层存储 map 中的节点,并且 for ElementOrder.insertion() it's LinkedHashMap 。对于此类映射的 Graph#nodes() keySet() 使用,因此除了迭代所有元素并返回最后一个元素之外,没有更好的方法来获取最后一个值。幸运的是有一个helper method Iterables#getLast(Iterable) for that在 Guava 中:

Integer last = Iterables.getLast(subgraph.nodes());

如果您希望代码不对空图抛出 NoSuchElementException,请使用带有默认值的重载,例如:

Integer last = Iterables.getLast(subgraph.nodes(), null);

(上面还有 Iterators counterparts 方法。)

关于java - Guava:具有逆插入的 nodeOrder 的 MutableGraph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60973249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com