菜單樹形結構工具類(可複用)

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;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章