[Lambda] Recursive community building-the simplest way in history

1. Without further ado, let’s talk about the effects first Insert image description here### 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;
    }

Guess you like

Origin blog.csdn.net/weixin_45116026/article/details/130380015