在Java中处理点格式图的节点和边
我有一个点格式的图形作为字符串。我想得到它的节点,边和它们的数据进行处理。我正在寻找一个处理给定点格式图形的Java库。请举个例子在Java中处理点格式图的节点和边,java,graphviz,dot,directed-acyclic-graphs,Java,Graphviz,Dot,Directed Acyclic Graphs,我有一个点格式的图形作为字符串。我想得到它的节点,边和它们的数据进行处理。我正在寻找一个处理给定点格式图形的Java库。请举个例子 digraph G { rankdir=TB V1 [a=1, b=2, label="V1"]; V2 [a=4, b=0, label="V2"]; V3 [a=1, b=3, label="V3"]; V4 [a=3, b=7, label="V4"]; V1 -> V2 [path=a, label="a
digraph G { rankdir=TB
V1 [a=1, b=2, label="V1"];
V2 [a=4, b=0, label="V2"];
V3 [a=1, b=3, label="V3"];
V4 [a=3, b=7, label="V4"];
V1 -> V2 [path=a, label="a"];
V2 -> V3 [path=b, label="b"];
V1 -> V4 [path=c, label="c"];
V2 -> V4 [path=d, label="d"];
}
假设您想要使用JGraphT库,您可以使用以下类: 您需要传递VertexProvider和EdgeProvider,它们必须返回顶点和边;它们还可以包含其他属性的附加逻辑:
SimpleDirectedGraph< String ,DefaultEdge> labeledGraph = new SimpleDirectedGraph<>(DefaultEdge.class);
DOTImporter<Integer,DefaultEdge> importer = new DOTImporter<>(
(String label, Map<String, Attribute> attributes) -> {
// handle the attributes here
return label;
},
(from, to, label, attributes) -> {
// handle the attributes here
return labelGraph.addEdge(from, to);
});
importer.importGraph(labelGraph, yourFileReader)
SimpleDirectedGraphlabeledGraph=newsimpledirectedgraph(DefaultEdge.class);
DOTImporter=新的DOTImporter(
(字符串标签、贴图属性)->{
//在这里处理属性
退货标签;
},
(从、到、标签、属性)-> {
//在这里处理属性
返回labelGraph.addEdge(从,到);
});
importer.importGraph(labelGraph,yourFileReader)
要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,以及迄今为止为解决这一问题所做的工作。