public static void main(String[] args) {
List<Tree> trees = new ArrayList<Tree>();
int id = 1;
Tree t1 = new Tree(0, id++, "北京总部");
Tree t2 = new Tree(0, id++, "上海总部");
Tree t3 = new Tree(1, id++, "徐汇子机构");
trees.add(t1);
trees.add(t2);
trees.add(t3); Tree t4 = new Tree(1, id++, "子机构+");
Tree t5 = new Tree(4, id++, "子机构++");
Tree t6 = new Tree(5, id++, "子机构+++");
trees.add(t4);
trees.add(t5);
trees.add(t6); show(trees);
} public static void show(List<Tree> trees) {
for (int i = 0; i < trees.size(); i++) {
Tree t = trees.get(i);
if (t.parent == 0) {
StringBuffer blank = new StringBuffer();
t.show(trees, blank);
}
}
}public class Tree {
public Tree(int parent, int id, String str) {
this.parent = parent;
this.id = id;
this.str = str;
} int parent;// 树的根树
int id;
String str; // StringBuffer blank = new StringBuffer();
public void show(List<Tree> trees, StringBuffer blank) {
blank.append(" ");
System.out.println(blank + str);
for (int i = 0; i < trees.size(); i++) {
Tree t = trees.get(i);
if (t.parent == id) {
t.show(trees, blank);
}
}
}
来查询出树形结构的集合。 然后扔到前台页面内的dtree 中 就可以展示树形结构
connect by prior id =parentid;
这是一个查询语句,返回结果集成树状结构!!!!
如果树是要显示在页面上,使用dtree
不用,就组成这样的数据
id:1, pId:0, name:"北京总部",
id:11, pId:1, name:"北京总部的子机构",
id:2, pId:0, name:"上海总部",
id:22, pId:2, name:"上海徐汇",
循环
for(int i=0;i<lst.size();i++){
先获取到,机构的上级机构,在获取到机构的父机构,在获取到 父机构下的子机构 获取到机构的名称
循环Tree t1 = new Tree(0, id++, "北京总部");
}