Java 中的通用树实现

2022-09-01 04:26:25

有没有人知道Java的通用树(节点可能有多个子节点)实现?它应该来自一个值得信赖的来源,并且必须经过全面测试。

我自己实现它似乎不对。几乎让我想起了我的大学时代,当时我们应该自己写我们所有的作品集。

编辑:在 java.net 上找到这个项目,可能值得研究。


答案 1

来了:

abstract class TreeNode implements Iterable<TreeNode> {

  private Set<TreeNode> children;

  public TreeNode() {
    children = new HashSet<TreeNode>();
  }

  public boolean addChild(TreeNode n) {
    return children.add(n);
  }

  public boolean removeChild(TreeNode n) {
    return children.remove(n);
  }

  public Iterator<TreeNode> iterator() {
    return children.iterator();
  }
}

我很受信任,但尚未测试实现。


答案 2

集合库中没有树类。但是,Swing Frameworks中有一个。默认树模型

我过去曾使用过这个,效果很好。它确实将其他类拉入到您的应用程序中,尽管这可能是也可能不是可取的。

您还可以使用另一个集合模拟树,并在其中存储集合。例如。列表列表。