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.
Demo programs that help to get started with JGraphT.
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.