如何在java中表示如下所示的树结构?Java树字符串数据结构
"root"
| |
"leaf1" "leaf2"
| |
"leaf3" "leaf4"
|
"leaf5"
是否有任何内置的或定制的类,任何人都可以引用我?
编辑:我需要能够轻松遍历节点。
如何在java中表示如下所示的树结构?Java树字符串数据结构
"root"
| |
"leaf1" "leaf2"
| |
"leaf3" "leaf4"
|
"leaf5"
是否有任何内置的或定制的类,任何人都可以引用我?
编辑:我需要能够轻松遍历节点。
Java类库或Guava或Apache Commons Collections中没有通用树类型。
最简单的解决方案是自己实现树型,以完成您所需的操作。树的核心功能是微不足道的... ...模具的细节很大程度上取决于树需要包含的内容以及您的用例需要如何表现。
(如果您想了解为什么没有通用的乔木型,尽量避开讨论你的头在这个番石榴问题 - http://code.google.com/p/guava-libraries/issues/detail?id=174)
以下是简单的二进制树,这将解决你的目的。
http://www.java2s.com/Code/Java/Collections-Data-Structure/BinaryTree.htm
试试这个[非常一般,虽然]:
public class Tree {
private Node root;
public Tree(String rootData) {
root = new Node();
root.data = rootData;
root.children = new ArrayList<Node>();
}
private class Node {
private String data;
private Node parent;
private List<Node> children;
}
}
它可能不是集合的一部分NS API,但Swing的JTree的TreeModel
肯定是一个通用的树实现:https://docs.oracle.com/javase/7/docs/api/javax/swing/tree/TreeModel.html
这里,对于初学者:http://stackoverflow.com/questions/3522454/java-tree-data-structure – 2012-01-16 04:03:13
如何使用,没有摆动? – user908683 2012-01-16 04:09:13
有一个非常好的例子来自'javax.swing'答案,它基本上扩展了Adrian的回答(尽管我会说,Stephen C的答案有一些很好的背景)。 – 2012-01-16 04:25:33