树结构生成示例模板2种

方式一:


public List<DevCategory> list() {
List<DevCategory> allList = devCategoryDao.findAllData();
return allList.stream().filter(s -> s.getPid() == null || s.getPid().isBlank()).peek(item ->
findChildren(item, allList)).toList();
}

private void findChildren(DevCategory devCategory, List<DevCategory> allList) {
List<DevCategory> child = new ArrayList<>();
allList.forEach(s -> {
if (Objects.equals(String.valueOf(devCategory.getId()), s.getPid())) {
child.add(s);
findChildren(s, allList);
}
devCategory.setChildren(child);
});
}

方式二:

List<DevCategory> allList = devCategoryDao.findAllData();
return allList.stream().filter(s -> s.getPid() == null || s.getPid().isBlank())
.peek(item -> item.setChildren(findChildren(item.getId(), allList))).collect(Collectors.toList());

private List<DevCategory> findChildren(Long id, List<DevCategory> allList) {
return allList.stream().filter(s -> {
return Objects.equals(String.valueOf(id), s.getPid());
}).peek(item -> item.setChildren(findChildren(item.getId(), allList))).collect(Collectors.toList());
}
 





posted @ 2024-08-01 14:45  sensen~||^_^|||&  阅读(1)  评论(0编辑  收藏  举报