1 package com.bert.logic;
2
3
4 import java.util.ArrayList;
5 import java.util.List;
6
7
8 import com.alibaba.fastjson.JSON;
9
10
11 public class Menu {
12 private Integer pid;
13 private String menuName;
14 private Integer parentId;
15 private Integer position;
16 private List<Menu> childMenu;
17
18
19 public Integer getPid() {
20 return pid;
21 }
22
23
24
25
26 public void setPid(Integer pid) {
27 this.pid = pid;
28 }
29
30
31
32
33 public String getMenuName() {
34 return menuName;
35 }
36
37
38
39
40 public void setMenuName(String menuName) {
41 this.menuName = menuName;
42 }
43
44
45
46
47 public Integer getParentId() {
48 return parentId;
49 }
50
51
52
53
54 public void setParentId(Integer parentId) {
55 this.parentId = parentId;
56 }
57
58
59
60
61 public Integer getPosition() {
62 return position;
63 }
64
65
66
67
68 public void setPosition(Integer position) {
69 this.position = position;
70 }
71
72
73
74
75 public List<Menu> getChildMenu() {
76 return childMenu;
77 }
78
79
80
81
82 public void setChildMenu(List<Menu> childMenu) {
83 this.childMenu = childMenu;
84 }
85
86
87
88 public Menu(Integer pid, String menuName, Integer parentId, Integer position) {
89 super();
90 this.pid = pid;
91 this.menuName = menuName;
92 this.parentId = parentId;
93 this.position = position;
94 }
95
96
97
98 public Menu() {
99 super();
100 }
101
102
103
104
105 public static void main(String[] args) {
106 List<Menu> treeMenu=new ArrayList<Menu>();
107
108 List<Menu> list=new ArrayList<Menu>();
109 Menu menu1=new Menu(1, "父级1", 0, 1);
110 Menu menu2=new Menu(2, "父级2", 0, 2);
111 Menu menu1_1=new Menu(3, "子级1_1", 1, 1);
112 Menu menu1_2=new Menu(4, "子级1_2", 1, 2);
113 Menu menu1_2_1=new Menu(5, "子级1_2_1", 4, 2);
114 list.add(menu1);
115 list.add(menu2);
116 list.add(menu1_1);
117 list.add(menu1_2);
118 list.add(menu1_2_1);
119
120 List<Menu> listTree=buildTree(list,0);
121
122 String trssJson=JSON.toJSONString(listTree);
123 System.out.println(trssJson);
124
125 }
126
127 public static List<Menu> buildTree(List<Menu> list,int parentId){
128 List<Menu> menus=new ArrayList<Menu>();
129 for (Menu menu : list) {
130
131 int menuId = menu.getPid();
132 int pid = menu.getParentId();
133 if (parentId == pid) {
134 List<Menu> menuLists = buildTree(list, menuId);
135
136 menu.setChildMenu(menuLists);
137 menus.add(menu);
138 }
139 }
140
141 return menus;
142 }
143 }