java List轉為樹狀List
阿新 • • 發佈:2019-01-01
基本邏輯
每個元素都必有三個欄位
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);