public class MenuTreeUtil {
private List<MenuVo> menuList = new ArrayList();
public MenuTreeUtil(List<MenuVo> menuList) {
this.menuList=menuList;
}
//建立树形结构
public List<MenuVo> builTree(){
List<MenuVo> treeMenus =new ArrayList();
for(MenuVo menuNode : getRootNode()) {
menuNode=buildChilTree(menuNode);
treeMenus.add(menuNode);
}
return treeMenus;
}
//递归,建立子树形结构
private MenuVo buildChilTree(MenuVo pNode){
List<MenuVo> chilMenus =new ArrayList<MenuVo>();
for(MenuVo menuNode : menuList) {
//排除父节点
if(!menuNode.equals("0") && menuNode.getParentId().equals(pNode.getId())) {
chilMenus.add(buildChilTree(menuNode));
}
}
pNode.setMenuVo(chilMenus);
return pNode;
}
//获取根节点
private List<MenuVo> getRootNode() {
List<MenuVo> rootMenuLists =new ArrayList();
for(MenuVo menuNode : menuList) {
if(menuNode.getParentId().equals("0")) {
rootMenuLists.add(menuNode);
}
}
return rootMenuLists;
}
}