Java中Tree的现有实现?

时间:2009-09-22 09:54:59

标签: java tree

我正在寻找Java的纯树数据结构的任何实现(在java.awt中不是图形化的),最好是通用的。

使用通用树我想添加不应该排序的元素,并执行以下操作:

TreeNode anotherNode = new TreeNode();
node.add(anotherNode);

...然后我想遍历节点(这样当我再次从同一个文件加载树时,我可以保存并保存文件中的结构。)

任何人都知道存在哪些实现或有任何其他想法来实现这一目标?

4 个答案:

答案 0 :(得分:3)

您可以使用javax.swing.tree包中定义的DefaultMutableTreeNode。它包含方法getUserObject()setUserObject(Object),允许您将数据附加到每个树节点。它允许每个父节点具有任意数量的子节点,并提供以广度优先或深度优先方式(breadthFirstEnumeration() / depthFirstEnumeration())迭代树的方法。

另请注意,尽管驻留在javax.swing.tree包中,但此类不包含任何UI代码;它只是JTree的基础模型。

答案 1 :(得分:2)

Scala有一个很好的Tree数据结构。这是一个“通用平衡树”。它不完全是Java,但它很接近,可以作为一个好的模型。

很难相信,考虑到基础Java库有多少,但没有良好的通用Tree结构。

答案 2 :(得分:0)

首先,运行时中的TreeSetTreeMap是红黑树实现。

答案 3 :(得分:0)

假设您不想在节点上存储任意Java对象,可以使用W3C DOM。它甚至带有自己的序列化格式(我忘了它的名字: - )。