JGraphT is a free Java class library that provides mathematical graph-theory objects and algorithms. This is an open-source java graph library that supports a rich gallery of graphs and is designed to be powerful, extensible and easy to use.

Visit http://jgrapht.sourceforge.net to download and to get the latest info on JGraphT.

Packages
Package
Description
The front-end API's interfaces and classes, including Graph, DirectedGraph and UndirectedGraph.
Algorithms provided with JGraphT.
Utilities used by JGraphT algorithms.
Event classes and listener interfaces, used to provide a change notification mechanism on graph modification events.
Extensions and integration means to other products.
Generators for graphs of various topologies.
Implementations of various graphs.
Graph traversal means.
Non-graph-specific data structures, algorithms, and utilities used by JGraphT.