Java图/网络数据结构的API列表

8

有哪些适用于将图形(边缘/节点)作为数据结构的Java API?

请在评论中添加类似SO问题的引用。请直接编辑此wiki条目中的列表。请将您添加的项目的摘要描述作为答案添加(每个答案一个项目)。


类似于:https://dev59.com/M3RB5IYBdhLWcg3wAjbR - harschware
4个回答

8
我在网络上为我的MS论文搜索了很多Java图形库。我建议您使用以下框架:
  1. GraphStream:它具有非常简单的API和丰富的算法。它提供了许多图形结构(有向、无向、多图等)和许多可视化工具。
  2. JUNG:此框架已经存在一段时间,因此具有稳健而经过充分测试的功能。最后发布于2010年,因此语法有点陈旧。
这两个框架都有许多算法和可视化工具。
如果您关心内存和性能,并且只需要图形数据结构(没有算法,没有可视化),我建议使用AuroraGraphManager,这是我实现的图形数据结构之一,也是我的论文的一部分。我推荐的框架对我来说不太适用,因为我必须处理相当大的图形(多达3亿个边)。
希望对您有所帮助!

6

JGraphT - JGraphT是一个免费的Java图形库,提供数学图形对象和算法。JGraphT支持各种类型的图形,包括:

  • 有向图和无向图。
  • 具有加权/非加权/标记或任何用户定义边缘的图形。
  • 各种边缘重复选项,包括:简单图形、多图形、伪图形。
  • 不可修改的图形-允许模块提供对内部图形的“只读”访问。
  • 可监听的图形-允许外部侦听器跟踪修改事件。
  • 子图形-是其他图形上的自动更新子图形视图。
  • 以上图形的所有组合

(需要Java 1.6)


JGraph似乎是用于可视化的。 - harschware
我编辑了一下,将不适合的JGraph和之前提到的Jung都去掉了。现在按照每个答案一个API的格式进行回答... 感谢@Kaleb Brasee的原始帖子。 - harschware

4

JUNG是一个软件库,提供了一种通用且可扩展的语言,用于对可以表示为图形或网络的数据进行建模、分析和可视化。


2

JDSL - JDSL是一款Java语言的数据结构库,它包括实现基本数据结构和算法的Java接口和类,例如:

  • 序列,树,优先队列,搜索树,哈希表
  • 排序和搜索算法
  • 图遍历,最短路径,最小生成树

(JDSL似乎不支持泛型)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接