Bootstrap

使用list集合stream实现父子结构,超简单

转载:一名无知的小码农

直接使用cv大法,然以改成自己的类就可以直接使用了~

//根据角色查记录集合
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);
    });
}
;