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;
}
}
菜單樹形結構工具類(可複用)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.