基本逻辑
每个元素都必有三个字段
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);