Java 获取菜单所有父级路径拼接 - 递归算法实现
Java 获取菜单所有父级路径拼接 - 递归算法实现
本文将介绍如何使用递归算法在 Java 中获取菜单所有父级路径拼接。假设我们有以下菜单数据结构:
public class Menu {
private int id;
private String name;
private int parentId;
// 其他属性
// getter和setter方法
}
我们可以使用递归的方式获取菜单的所有父级路径拼接:
public String getMenuPath(int menuId, List<Menu> menuList) {
String path = "";
for (Menu menu : menuList) {
if (menu.getId() == menuId) {
if (menu.getParentId() != 0) {
path = getMenuPath(menu.getParentId(), menuList) + '/' + menu.getName();
} else {
path = menu.getName();
}
break;
}
}
return path;
}
使用示例:
List<Menu> menuList = new ArrayList<>();
// 添加菜单数据到menuList
int menuId = 5; // 假设要获取id为5的菜单的path
String path = getMenuPath(menuId, menuList);
System.out.println(path); // 输出菜单的path
该方法会在 menuList 中查找 id 为 menuId 的菜单,并递归查找它的所有父级菜单,最终返回它们的路径拼接。如果 menuId 不存在或没有父级菜单,则返回空字符串。
方法说明:
- 首先,方法会遍历
menuList,找到id与menuId相匹配的菜单。 - 如果该菜单有父级菜单 (
parentId不为 0),则递归调用getMenuPath方法获取父级菜单的路径,并将其与当前菜单名称拼接。 - 如果该菜单没有父级菜单,则直接将菜单名称作为路径。
- 递归调用会一直进行,直到找到没有父级菜单的顶层菜单。
总结:
使用递归算法可以方便地实现获取菜单所有父级路径拼接的功能,代码简洁易懂。该方法适用于各种菜单结构,并能根据需要进行调整。
原文地址: https://www.cveoy.top/t/topic/oAUo 著作权归作者所有。请勿转载和采集!