AbstractBaseGraph#getEdge(V,V) 如何处理平行边?
-
21-12-2019 - |
题
AbstractBaseGraph#getEdge(V,V)
返回单个 E。如果传递的两个顶点有多个连接边,它如何决定返回哪条边?
解决方案
如果有多条边,看起来只返回一条:
public E getEdge(V sourceVertex, V targetVertex){
...
Iterator<E> iter =
getEdgeContainer(sourceVertex).vertexEdges.iterator();
while (iter.hasNext()) {
E e = iter.next();
...
返回第一条合法边(源顶点和目标顶点等于参数)。由于迭代器(基于 Map 数据结构)无法保证返回组件的顺序,因此不可能确定将返回哪条边。如果您需要检查并选择特定的边缘,您可能应该使用 getAllEdges(V sourceVertex, V targetVertex)
.
不隶属于 StackOverflow