如题所示,项目中需要将部分数据处理成为树状结构,实现过程如下:
注:也可以使用sql达到该目的,但此处数据不多,故在代码中处理,主要是sql处理不是很会
List<Data> dataAll = service.findAll();if (CollUtil.isEmpty(dataAll)) {return new ArrayList<>();}List<Data> parentList = dataAll.stream().filter(item -> ObjectUtil.isEmpty(item.getParentNumber())).collect(Collectors.toList());List<Data> childList = dataAll.stream().filter(item -> ObjectUtil.isNotEmpty(item.getParentNumber())).collect(Collectors.toList());return parentList.stream().map(item1 -> {Data chapterVo = new Data();BeanUtils.copyProperties(item1, chapterVo);List<Data> videoVoList = childList.stream().filter(item2 -> item1.getBackgroundManagementCategoryNumber().equals(item2.getParentNumber())).map(item3 -> {Data videoVo = new Data();BeanUtils.copyProperties(item3, videoVo);return videoVo;}).collect(Collectors.toList());chapterVo.setChildren(videoVoList);return chapterVo;}).collect(Collectors.toList());