public class MenuHelper { /** * 使用递归方法建菜单 * @param sysMenuList * @return */ public static List<SysMenu> buildTree(List<SysMenu> sysMenuList) { // 存放最终数据 List<SysMenu> trees = new ArrayList<>(); // 把所有的菜单数据进行遍历 for (SysMenu sysMenu : sysMenuList) { // 递归入口 parentId = 0 if (sysMenu.getParentId().longValue()==0){ trees.add(getChildren(sysMenu,sysMenuList)); } } return trees; } /** * 递归查找子节点 * @param sysMenu * @param sysMenuList * @return */ public static SysMenu getChildren(SysMenu sysMenu,List<SysMenu> sysMenuList){ sysMenu.setChildren(new ArrayList<SysMenu>()); // 遍历所有的菜单数据,判断id和parent_id的对应关系 for (SysMenu menu : sysMenuList) { if (sysMenu.getId().longValue() == menu.getParentId().longValue()){ if (sysMenu.getChildren() == null) { sysMenu.setChildren(new ArrayList<>()); } sysMenu.getChildren().add(getChildren(menu,sysMenuList)); } } return sysMenu; } }
实习时候项目出现此需求(在尚硅谷云上办公系统又碰到了),觉得有必要记录下!!!
云上办公系统笔记:(190条消息) 云上办公系统项目_不懂开发的程序猿的博客-CSDN博客
标签:层级,return,sysMenuList,展示,List,SysMenu,getChildren,sysMenu,Springboot From: https://www.cnblogs.com/cy0628/p/17470958.html