我有一个 java 应用程序,我从中调用一个 groovy 类来计算图中 2 个顶点之间的最短路径。
爪哇:
public class Test {
public static void main(String[] args) {
TinkerGraph g = new TinkerGraph();
Vertex src = null;
src = g.addVertex(null);
src.setProperty("name",1);
src.setProperty("Type", "switch");
Vertex src1 = null;
src1 = g.addVertex(null);
src1.setProperty("name",2);
src1.setProperty("Type", "switch");
Vertex src2 = null;
src2 = g.addVertex(null);
src2.setProperty("name",3);
src2.setProperty("Type", "switch");
Vertex src3 = null;
src3 = g.addVertex(null);
src3.setProperty("name",4);
src3.setProperty("Type", "switch");
Edge e=null;
e=g.addEdge(null, src, src1, "connects");
Edge e1=null;
e1= g.addEdge(null, src1, src2, "connects");
Edge e2=null;
e2= g.addEdge(null, src2, src3, "connects");
System.out.println(GetRoute.getPathToHost(g));
}
}
时髦的:
class GetRoute {
static {
Gremlin.load()
}
public static Map<Vertex, Integer> getPathToHost(TinkerGraph g) {
g1.V[["name":1]].both.loop(2){!it.object.equals("name":4)}.Paths >> 1
}
}
我的问题是:
首先查询是错误的。我已经在 gremlinpipe+java 中计算了一个函数,但它非常庞大,我正在尝试用 groovy 找到一种更简单的方法。如何优化此查询?
假设我的查询打印了 2 个顶点之间路径中的所有顶点,那么我如何将它存储在一个 Map 数组中,或者如何将它打印到控制台上?
任何帮助将不胜感激。
问候