1 package testSimple;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class BuildTree {
7 public static void main(String[] args) {
8 List<Tree> list = new ArrayList<Tree>();
9 list.add(new Tree(1, "一级菜单", 0));
10 list.add(new Tree(2, "二级菜单1", 1));
11 list.add(new Tree(3, "二级菜单2", 1));
12 list.add(new Tree(4, "二级菜单3", 1));
13 list.add(new Tree(5, "三级菜单11", 2));
14 list.add(new Tree(6, "三级菜单12", 2));
15 list.add(new Tree(7, "三级菜单21", 3));
16 list.add(new Tree(8, "三级菜单22", 3));
17 list.add(new Tree(9, "三级菜单31", 4));
18 list.add(new Tree(10, "三级菜单32", 4));
19
20 List<Tree> result = buildTree(list, 0);
21 System.out.println(result);
22 }
23
24 public static List<Tree> buildTree(List<Tree> list, int fid) {
25 List<Tree> resultList = new ArrayList<Tree>();
26 if (list == null || list.size() == 0 || fid < 0) {
27 return null;
28 }
29 for (Tree tree : list) {
30 if (tree.getFid() == fid) {
31 resultList.add(tree);
32 tree.setChildren(buildTree(list, tree.getId()));
33 }
34 }
35 return resultList;
36 }
37
38 }
39
40 class Tree {
41 private int id;
42 private String name;
43 private int fid;
44 private List<Tree> children;
45
46 public Tree(int id, String name, int fid) {
47 super();
48 this.id = id;
49 this.name = name;
50 this.fid = fid;
51 }
52
53 public int getId() {
54 return id;
55 }
56
57 public void setId(int id) {
58 this.id = id;
59 }
60
61 public String getName() {
62 return name;
63 }
64
65 public void setName(String name) {
66 this.name = name;
67 }
68
69 public int getFid() {
70 return fid;
71 }
72
73 public void setFid(int fid) {
74 this.fid = fid;
75 }
76
77 public List<Tree> getChildren() {
78 return children;
79 }
80
81 public void setChildren(List<Tree> children) {
82 this.children = children;
83 }
84
85 }