Use o fluxo de coleta de lista para realizar a estrutura pai-filho, que é super simples

Reimpressão: Um pequeno agricultor de código ignorante

Use o método cv diretamente e, em seguida, você pode usá-lo diretamente, alterando-o para sua própria classe ~

//根据角色查记录集合
List<SysMenu> menus = sysMenuDao.listMenuByRoleId(single.getRoleId());
if(!CollectionUtils.isEmpty(menus)){
    
    
    handleMenuName(menus);   
}


private void handleMenuName(List<SysMenu> menus){
    
    
    if(CollectionUtils.isEmpty(menus)){
    
    
        return;
    }
    eachMenu(menus);
}

private void eachMenu(List<SysMenu> menus){
    
    
    menus.stream().forEach(menu->{
    
    
        List<SysMenu> childMenuList = menus.stream().filter(p -> StringUtils.equals(p.getParentMenuId(), menu.getId())).collect(Collectors.toList());
        if(CollectionUtils.isEmpty(childMenuList)){
    
    
            return;
        }
        menu.setChildList(childMenuList);
        eachMenu(childMenuList);
    });
}

Acho que você gosta

Origin blog.csdn.net/qq_16607641/article/details/127238648
Recomendado
Clasificación