我正在寻找Java的纯树数据结构的任何实现(在java.awt中不是图形化的),最好是通用的。
使用通用树我想添加不应该排序的元素,并执行以下操作:
TreeNode anotherNode = new TreeNode();
node.add(anotherNode);
...然后我想遍历节点(这样当我再次从同一个文件加载树时,我可以保存并保存文件中的结构。)
任何人都知道存在哪些实现或有任何其他想法来实现这一目标?
答案 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)
答案 3 :(得分:0)
假设您不想在节点上存储任意Java对象,可以使用W3C DOM。它甚至带有自己的序列化格式(我忘了它的名字: - )。