Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印图形顶点和边源/目标-JGraphT_Java_Graph_Graph Theory_Vertex - Fatal编程技术网

Java 打印图形顶点和边源/目标-JGraphT

Java 打印图形顶点和边源/目标-JGraphT,java,graph,graph-theory,vertex,Java,Graph,Graph Theory,Vertex,我正在创建一个航班图,其中用户 我希望能够打印出我的图表,如下所示: Edinburgh <-> Heathrow Heathrow <-> Amsterdam etc.... 爱丁堡希思罗机场 阿姆斯特丹希思罗机场 等 我有一个想法,通过获取边缘源和边缘目标,边缘是“”,源是例如“爱丁堡”,目标是“希思罗” 我尝试过循环使用字符串数组和打印,例如graph.getEdge(sourceVertext,targetVertex),但似乎无法让它工作 我将在代码中只使用

我正在创建一个航班图,其中用户 我希望能够打印出我的图表,如下所示:

Edinburgh <-> Heathrow
Heathrow <-> Amsterdam
etc....
爱丁堡希思罗机场 阿姆斯特丹希思罗机场 等 我有一个想法,通过获取边缘源和边缘目标,边缘是“”,源是例如“爱丁堡”,目标是“希思罗”

我尝试过循环使用字符串数组和打印,例如graph.getEdge(sourceVertext,targetVertex),但似乎无法让它工作

我将在代码中只使用几个示例

注意:如果在设置边缘权重后尝试打印数组,则会出现非法参数异常。如果有人能解释为什么会发生这种情况,那也太好了:)谢谢

publicstaticvoidmain(字符串[]args){
SimpleDirectedWeightedGraph机场=新SimpleDirectedWeightedGraph(
DefaultWeightedEdge.class);
字符串[]数组={“爱丁堡”、“希思罗”、“阿姆斯特丹”};
System.out.println(“”);
System.out.println(“使用以下目标:“+”\n”);
for(字符串s:数组){
System.out.println(s);//打印数组元素
}
系统输出打印(“”);
for(字符串s:数组){
系统输出打印(airport.getEdgeSource)+airport.getEdgeTarget);
//或者。。。。
//系统输出打印(airport.getEdge(sourceVertex,targetVertex));
}
DefaultWeightedEdge EH1=airport.addEdge(“爱丁堡”、“希思罗机场”);
DefaultWeightedEdge HE1=airport.addEdge(“希思罗”、“爱丁堡”);
机场。Setedgewight(EH1110);
机场。赛德吉维特(HE1110);
DefaultWeightedEdge HA2=airport.addEdge(“希思罗”、“阿姆斯特丹”);
DefaultWeightedEdge AH2=airport.addEdge(“阿姆斯特丹”、“希思罗机场”);
机场。Setedgewight(HA2100);
机场设置灯光(AH2100);
System.out.println(“”);
}

我已经知道如何显示边缘源和目标:

for(DefaultWeightedEdge e : airport.edgeSet()){
    System.out.println(airport.getEdgeSource(e) + " --> " + airport.getEdgeTarget(e));
}
但是,这会显示它,使其看起来像:

Edinburgh --> Heathrow
Heathrow --> Edinburgh
如何对其进行格式化,使其看起来像:

Edinburgh <-> Heathrow
爱丁堡希思罗机场 该格式应告知用户该航班为返程航班

谢谢你的帮助

Edinburgh <-> Heathrow