Good Java graph algorithm library? [closed]

2018-12-31 18:25发布

Has anyone had good experiences with any Java libraries for Graph algorithms. I've tried JGraph and found it ok, and there are a lot of different ones in google. Are there any that people are actually using successfully in production code or would recommend?

To clarify, I'm not looking for a library that produces graphs/charts, I'm looking for one that helps with Graph algorithms, eg minimum spanning tree, Kruskal's algorithm Nodes, Edges, etc. Ideally one with some good algorithms/data structures in a nice Java OO API.

18条回答
只靠听说
2楼-- · 2018-12-31 19:02

Check out JGraphT for a very simple and powerful Java graph library that is pretty well done and, to allay any confusion, is different than JGraph. Some sample code:

UndirectedGraph<String, DefaultEdge> g =
        new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);

    String v1 = "v1";
    String v2 = "v2";
    String v3 = "v3";
    String v4 = "v4";

    // add the vertices
    g.addVertex(v1);
    g.addVertex(v2);
    g.addVertex(v3);
    g.addVertex(v4);

    // add edges to create a circuit
    g.addEdge(v1, v2);
    g.addEdge(v2, v3);
    g.addEdge(v3, v4);
    g.addEdge(v4, v1);
查看更多
牵手、夕阳
3楼-- · 2018-12-31 19:03

If you need performance, you might take a look at Grph. The library is developed in the French University and CNRS/Inria.

http://www.i3s.unice.fr/~hogie/grph/

The project is active and reactive support is provided!

查看更多
不再属于我。
4楼-- · 2018-12-31 19:03

JGraph from http://mmengineer.blogspot.com/2009/10/java-graph-floyd-class.html

Provides a powerfull software to work with graphs (direct or undirect). Also generates Graphivz code, you can see graphics representations. You can put your own code algorithms into pakage, for example: backtracking code. The package provide some algorithms: Dijkstra, backtracking minimun path cost, ect..

查看更多
像晚风撩人
5楼-- · 2018-12-31 19:04

I don't know if I'd call it production-ready, but there's jGABL.

查看更多
查无此人
6楼-- · 2018-12-31 19:05

If you were using JGraph, you should give a try to JGraphT which is designed for algorithms. One of its features is visualization using the JGraph library. It's still developed, but pretty stable. I analyzed the complexity of JGraphT algorithms some time ago. Some of them aren't the quickest, but if you're going to implement them on your own and need to display your graph, then it might be the best choice. I really liked using its API, when I quickly had to write an app that was working on graph and displaying it later.

查看更多
初与友歌
7楼-- · 2018-12-31 19:07

http://neo4j.org/ is a graph database that contains many of graph algorithms and scales better than most in-memory libraries.

查看更多
登录 后发表回答