public List selectMenuList(SysMenu menu, Long userId) {
List menuList = null;
//查询所有父菜单列表
menuList = menuMapper.selectMenuList(menu);
//查询所有非父菜单列表
List parentMenuList = menuMapper.selectParentMenuList(menu);
Long parentId = null;
Long menuId = null;
List sysMenuss = new ArrayList();
for (int a = 0; a < parentMenuList.size(); a++) {
for (int i = 0; i < parentMenuList.size(); i++) {
parentId = parentMenuList.get(a).getParentId();
menuId = parentMenuList.get(i).getMenuId();
if (parentId != null && menuId != null) {
//循环得到每次所有非父菜单的父ID和所有非父菜单的ID相等时
if (parentMenuList.get(a).getParentId().equals(parentMenuList.get(i).getMenuId())) {
//在每次循环都生成一个空List,放入每次得到的子菜单数据
List sysMenus = new ArrayList();
sysMenus.add(parentMenuList.get(a));
//将每次循环得到的子菜单数据放入其父菜单的chi
java典中典树状结构查询系统菜单列表无限层,不需要removeall
最新推荐文章于 2023-04-03 10:16:43 发布
该方法通过查询所有父菜单和非父菜单,然后进行双重循环比对,当找到非父菜单的父ID等于某父菜单的ID时,将非父菜单作为子菜单添加到父菜单的children中,最终生成树形结构的菜单列表。
摘要由CSDN通过智能技术生成