Apache Commons предлагает общий граф . Под http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/ можно проверить источник. Пример использования API также есть в SVN . См. Https://issues.apache.org/jira/browse/SANDBOX-458 для списка реализованных алгоритмов, также сравниваемых с Jung, GraphT, Prefuse , jBPT.
Google Guava, если вам нужны только хорошие структуры данных.
JGraphT - это библиотека графов, в которой реализовано множество алгоритмов и которая (на мой взгляд) имеет хорошую модель графов. Helloworld Пример . Лицензия: LGPL + EPL.
JUNG2 также является лицензированной библиотекой BSD со структурой данных, аналогичной JGraphT. Он предлагает алгоритмы компоновки, которые в настоящее время отсутствуют в JGraphT. Самым последним коммитом является 2010 год, а пакеты hep.aida.*
- LGPL (через библиотеку colt , которая импортируется JUNG ). Это предотвращает использование JUNG в проектах под эгидой ASF и ESF. Возможно, следует использовать github fork и удалить эту зависимость. Commit f4ca0cd отражает последний коммит CVS. Текущие коммиты, кажется, удаляют функциональность визуализации. Commit d0fb491c добавляет .gitignore
.
Prefuse хранит графики с использованием матричной структуры, которая неэффективна для памяти разреженных графов. Лицензия: BSD
Eclipse Zest имеет встроенные алгоритмы разметки графиков, которые можно использовать независимо от SWT. Смотрите org.eclipse.zest.layouts.algorithms . Используется графическая структура Eclipse Draw2d , где узлы являются явными объектами, а не внедряются через Generics (как это происходит в Apache Commons Graph, JGraphT и JUNG2).