树结构数据
代码
Stack<List<ProjectDto>> listStack = new Stack<>();
// 存储层级数据
Map<Integer, List<ProjectDto>> childrenMap = new HashMap<>();
// 入栈
listStack.push(projectDtoList1);
// 层级号
int count = 0;
// 项目不为空时
while (!listStack.isEmpty()) {
// 出栈
List<ProjectDto> projectDtoList2 = listStack.pop();
// 存储当前层级下的子节点
List<ProjectDto> projectDtoArrayList3 = new ArrayList<>();
for (int i = 0; i < projectDtoList2.size(); i++) {
if (!projectDtoList2.get(i).getParentId().equals("0")) {
if (projectDtoList2.get(i) != null) {
// 添加所有的子节点
projectDtoArrayList3.addAll(projectDtoList2.get(i).getChildren());
}
} else {
projectDtoArrayList3.addAll(projectDtoList2.get(i).getChildren());
}
// 循环完毕,添加当前节点数据
if (i == projectDtoList2.size() - 1) {
childrenMap.put(count++, projectDtoList2);
}
}
if (projectDtoArrayList3.size() != 0 && projectDtoArrayList3 != null) {
// 获取子节点入栈
listStack.push(projectDtoArrayList3);
}
}
map.put("Level", childrenMap);
数据