Looking for a simple Java API for creating graphs

2019-01-17 16:01发布

问题:

I'm trying to find a simple Java API for creating graph relationships. It should have some functionality like addEdge(), addNode(), isConnected(node1, node2), findPaths(node1, node2), etc. I need no UI, just logic.

I found a bunch of academic projects, but none seems to be "The Definitive Graph API".

Does anyone know about such an API?

回答1:

JGraphT sounds like what you're after.

JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs.

Their API can create graphs from various input and also supports creating graphs using addVertex, addEdge. They support finding shortest paths using various well know algorithms such as Bellman-Ford and Dijkstra They also have a complete javadoc available online.



回答2:

JDLS is a great library for Graphs and Datastructures in general. You could also use the Grappa library. Its advantage is that it can use the graphViz libraries for graph layouting.



回答3:

Definitly You should try the http://neo4j.org/ This is great Graph database written in Java but It can work as a embedded database to very small application too.

This database have everything You need even if you plan to store billions of nodes. Good luck.



回答4:

a really decent one can be found here: http://javaddlib.sourceforge.net/jdd/



回答5:

JUNG — the Java Universal Network/Graph Framework - is one of the fastest available (implementing the CERN math library COLT), especially if you want to do graph analysis, centrality measurements (betweennes, pagerank, etc.). Furthermore it allows for network visualization.



回答6:

Jdigraph is yet another graph library.