1. Lassen Sie uns ohne weitere Umschweife zunächst über die Auswirkungen sprechen
### 2.Java-Code
2.1 Filtern Sie zunächst Gebäude der ersten Ebene heraus
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 Rekursive Suche nach Teilmengen
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;
}