What are some good Java APIs for working with graphs (edges/nodes) as data structures?
Please add references to similar SO questions in comments to this wiki. Ple
I searched a lot for Java Graph Library in the web for my MS thesis. I suggest you the following frameworks:
Both the frameworks have many algorithms and a visualisation tool.
If you are concerned about memory and performance, and you just need the graph data structure (no algorithms, no visualisation), I would suggest AuroraGraphManager, which is the graph data structure I implemented and part of my thesis. The frameworks I suggested above weren't good for me because I had to deal with quite big graphs (up to 300 million edges).
Hope it helps!
JUNG — the Java Universal Network/Graph Framework--is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network.
JGraphT - JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:
(Requires Java 1.6)
JDSL - JDSL is the Data Structures Library in Java. It is a collection of Java interfaces and classes that implement fundamental data structures and algorithms, such as:
(JDSL does not appear to support generics)