Java 添加两条边-JGraphT

Java 添加两条边-JGraphT,java,jgrapht,Java,Jgrapht,我正在使用JGrapghT 1.2.0库中的SimpleDirectedWeightedGraph。我的目标是在顶点A和B之间创建两条边,以便ab。如果我这样做: graph.addEdge("A", "B", 80); graph.addEdge("B", "A", 80); System.out.println(graph.getAllEdges("A", "B")); System.out.println(graph.getAllEdges("B", "A")); 我得到: [80] [

我正在使用
JGrapghT 1.2.0
库中的
SimpleDirectedWeightedGraph
。我的目标是在顶点
A
B
之间创建两条边,以便
ab
。如果我这样做:

graph.addEdge("A", "B", 80);
graph.addEdge("B", "A", 80);
System.out.println(graph.getAllEdges("A", "B"));
System.out.println(graph.getAllEdges("B", "A"));
我得到:

[80]
[]
而如果我将第二行更改为:
graph.addEdge(“B”,“A”,81),我明白了

[80]
[81]
为什么我不能在具有相同值的顶点之间创建两条边?

从上的
SimpleDirectedGraph

一个简单的有向图。简单有向图是一种有向图,其中任何两个顶点之间既不允许有多条(平行)边,也不允许有循环

从上的
SimpleDirectedGraph

一个简单的有向图。简单有向图是一种有向图,其中任何两个顶点之间既不允许有多条(平行)边,也不允许有循环

你可以试试这个:

DirectedWeightedMultigraph<String, DefaultWeightedEdge> graph = 
        new  DirectedWeightedMultigraph<String, DefaultWeightedEdge>(DefaultWeightedEdge.class);

// vertices
String u = "A";
String v = "B";

// add vertices
graph.addVertex(u);
graph.addVertex(v);

// add weighted edges
graph.setEdgeWeight(graph.addEdge(u, v), 80);
graph.setEdgeWeight(graph.addEdge(v, u), 80);

// print edge weighted
System.out.println(graph.getEdgeWeight(graph.getEdge(u, v)));
System.out.println(graph.getEdgeWeight(graph.getEdge(v, u)));
DirectedWeightedMultigraph=
新的DirectedWeightedMultigraph(DefaultWeightedEdge.class);
//顶点
字符串u=“A”;
字符串v=“B”;
//添加顶点
图.顶点(u);
图.addVertex(v);
//添加加权边
图.设定光线(图.增边(u,v),80);
图.设定的光线(图.增边(v,u),80);
//打印边缘加权
System.out.println(graph.getedgewight(graph.getEdge(u,v));
System.out.println(graph.getedgewight(graph.getEdge(v,u));
您可以尝试以下方法:

DirectedWeightedMultigraph<String, DefaultWeightedEdge> graph = 
        new  DirectedWeightedMultigraph<String, DefaultWeightedEdge>(DefaultWeightedEdge.class);

// vertices
String u = "A";
String v = "B";

// add vertices
graph.addVertex(u);
graph.addVertex(v);

// add weighted edges
graph.setEdgeWeight(graph.addEdge(u, v), 80);
graph.setEdgeWeight(graph.addEdge(v, u), 80);

// print edge weighted
System.out.println(graph.getEdgeWeight(graph.getEdge(u, v)));
System.out.println(graph.getEdgeWeight(graph.getEdge(v, u)));
DirectedWeightedMultigraph=
新的DirectedWeightedMultigraph(DefaultWeightedEdge.class);
//顶点
字符串u=“A”;
字符串v=“B”;
//添加顶点
图.顶点(u);
图.addVertex(v);
//添加加权边
图.设定光线(图.增边(u,v),80);
图.设定的光线(图.增边(v,u),80);
//打印边缘加权
System.out.println(graph.getedgewight(graph.getEdge(u,v));
System.out.println(graph.getedgewight(graph.getEdge(v,u));

请编辑您的问题,将完整的源代码作为可由他人编译和测试的。请编辑您的问题,将完整的源代码作为可由他人编译和测试的。