1. 程式人生 > >java List轉為樹狀List

java List轉為樹狀List

基本邏輯

每個元素都必有三個欄位

id

parentId,

childrenList

parentId為0則代表為頂級目錄,沒有父級元素。

遍歷元素,將所有不為頂級目錄的元素add進他們父級的childrenList中,

這樣所有的元素都放到了他們的父級元素中

再刪除所有不為頂級目錄的元素就ok了

        //獲取list
        List<RoleAuthVO> voList = ResultBean.getVOList(result, RoleAuthVO::new);
        //遍歷list,
        for (RoleAuthVO roleAuthVO : voList) {
            //如果元素不為頂級目錄
            if (roleAuthVO.getAuthParentId() != null && roleAuthVO.getAuthParentId() != 0) {
                //再次遍歷list
                for (RoleAuthVO authVO : voList) {
                    //則在整個list中找到元素的父級
                    if (roleAuthVO.getAuthParentId().equals(authVO.getAuthId())) {
                        //將元素放入父級中
                        authVO.getChildrenRoleAuthList().add(roleAuthVO);
                    }
                }
            }
        }
        //刪除掉所以不為頂級目錄的元素
        voList.removeIf(roleAuthVO -> roleAuthVO.getAuthParentId() != null && roleAuthVO.getAuthParentId() != 0);