Java树形结构数据最简单的遍历方式——JDK8stream流
思路:使用stream流对list集合进行分组,得到一个key为父级编码,value为list的一个map,然后遍历list,用编码和map中的key作比较,如果相同则加入到自己的子菜单下。最后留下父级编码为空的数据就完成了遍历。List<StudentResponse> dataList;Map<String, List<StudentResponse>> c
·
思路:使用stream流对list集合进行分组,得到一个key为父级编码,value为list的一个map,然后遍历list,用编码和map中的key作比较,如果相同则加入到自己的子菜单下。
最后留下父级编码为空的数据就完成了遍历。
List<StudentResponse> dataList;
Map<String, List<StudentResponse>> collect = dataList.stream()
.filter(Objects::nonNull)
.filter(o -> StringUtils.isNotBlank(o.getParentCode()))
.collect(Collectors.groupingBy(StudentResponse::getParentCode));
for (StudentResponse data : dataList) {
String code = data.getCode();
List<StudentResponse> list = collect.get(code);
data.setChildren(list);
}
dataList = dataList.stream()
.filter(e -> StringUtils.isBlank(e.getParentCode()))
.collect(Collectors.toList());
更多推荐
已为社区贡献1条内容
所有评论(0)