我正在尋找Java的純樹數據結構(不是java.awt中的圖形數據結構)的任何實現,最好是泛型的。Java中樹的現有實現?
隨着通用樹我想補充一點,不應該進行排序元素做這樣的事情:
TreeNode anotherNode = new TreeNode();
node.add(anotherNode);
...然後我想遍歷節點(所以當我再次從同一文件加載樹時,我可以保存並保存文件中的結構)。
任何人都知道有什麼實現存在或有任何其他想法來實現這一目標?
我正在尋找Java的純樹數據結構(不是java.awt中的圖形數據結構)的任何實現,最好是泛型的。Java中樹的現有實現?
隨着通用樹我想補充一點,不應該進行排序元素做這樣的事情:
TreeNode anotherNode = new TreeNode();
node.add(anotherNode);
...然後我想遍歷節點(所以當我再次從同一文件加載樹時,我可以保存並保存文件中的結構)。
任何人都知道有什麼實現存在或有任何其他想法來實現這一目標?
您可以使用javax.swing.tree
軟件包中定義的DefaultMutableTreeNode。它包含方法getUserObject()
和setUserObject(Object)
,允許您將數據附加到每個樹節點。它允許爲每個父節點創建任意數量的子節點,並提供以寬度優先或深度優先的方式遍歷樹的方法(breadthFirstEnumeration()
/depthFirstEnumeration()
)。
另請注意,儘管常駐於javax.swing.tree
包中,但此類不包含任何UI代碼;它僅僅是JTree
的基本模型。
斯卡拉有一個不錯的Tree
數據結構。這是一個「一般平衡樹」。這不完全是Java,但它很接近,可以作爲一個很好的模型。
很難相信,考慮到基礎Java庫有多少,但沒有很好的通用結構。
假設您不想在節點上存儲任意的Java對象,可以使用W3C DOM。它甚至帶有自己的序列化格式(我忘記了它叫做:-)。
我錯過了什麼?你在尋找'java.util.TreeSet'還是'java.util.TreeMap'?請定義*樹*。 – Dirk 2009-09-22 09:57:45
大約一年前,我需要一個樹的實現,但找不到合適的,所以我不得不推出我自己的:/ – Joril 2009-09-22 10:06:55