1. Without further ado, let’s talk about the effects first ### 2.java code
2.1 First filter out the first-level buildings
List<HouseRegionVo> houseRegionVos = list.stream()
.filter(houseRegionVo -> HouseRegionConstant.LEVEL_1.equals(houseRegionVo.getLevel()))
.map(item -> {
item.setChildren(getChildren(list, item));
return item;
})
.collect(Collectors.toList());
2.2 Recursively search for subsets
private List<HouseRegionVo> getChildren(List<HouseRegionVo> houseRegions, HouseRegionVo item) {
List<HouseRegionVo> list = houseRegions.stream()
.filter(houseRegionVo -> houseRegionVo.getParentId().equals(item.getId()))
.map(items -> {
items.setChildren(getChildren(houseRegions, items));
return items;
})
.collect(Collectors.toList());
return list;
}