【问题标题】:Java Data structure [duplicate]Java数据结构[重复] 【发布时间】:2011-05-04 11:55:53 【问题描述】: 可能重复:Java tree data-structure? 有没有类似树和图的Java数据结构实现? 【问题讨论】: 标签: java graph tree 【解决方案1】: 不在java.util Collections API 中。 您可以将 Swing 中的 DefaultTreeModel 用于树木。 Jung 是一个图框架。 【讨论】: 【解决方案2】: 正如我answered for a similar question 一样,Java API 不包含用于树/图的通用 API,因为每个用例都不需要一组独特的功能。不过,有很多类似树/图的 API 用于特殊情况。 原则上,制作自己的图很容易 - 甚至可以说每个对象实际上都是图中的一个节点,其引用类型字段的值是(传出的)邻居。 【讨论】: 不适用于树:Swing 中的 DefaultTreeModel 足够独立,您可以在没有 UI 的情况下使用它。 我也在我的链接答案中列出了这个。我不喜欢 DefaultTreeModel,我什至使用 Swing 通常使用我自己的 TreeModel 实现,所以我永远不会想到在 Swing 之外使用它。 你不喜欢它什么?你的改进如何? DefaultTreeModel 通常太复杂了,在我看来,这取决于你想要做什么。我通常为每个用例创建一个新模型,基于域模型(即我的答案中提到的自制对象树)而不是一些 TreeNode 实现(这是 DefaultTreeModel 背后的基本树接口)。当然,javax.swing.tree 包缺少一个实现监听器的 AbstractTreeModel,这似乎导致使用 DefaultTreeModel,尽管它比需要的多。