Java使用递归查询子级到父级菜单
时间: 2023-03-05 18:57:29 浏览: 197
php递归获取子级,父级,无限极分类,带demo,效率超高
4星 · 用户满意度95%
可以使用递归函数来实现查询 Java 中子级到父级菜单。下面是一个示例代码:
```
public class MenuItem {
private int id;
private String name;
private MenuItem parent;
// 省略getter和setter方法
public MenuItem(int id, String name, MenuItem parent) {
this.id = id;
this.name = name;
this.parent = parent;
}
}
public class Menu {
public static MenuItem findParent(MenuItem menuItem) {
if (menuItem.getParent() == null) {
// 如果没有父级,则返回当前菜单项
return menuItem;
} else {
// 递归查询父级菜单项
return findParent(menuItem.getParent());
}
}
public static void main(String[] args) {
MenuItem menuItem1 = new MenuItem(1, "菜单项1", null);
MenuItem menuItem2 = new MenuItem(2, "菜单项2", menuItem1);
MenuItem menuItem3 = new MenuItem(3, "菜单项3", menuItem2);
MenuItem parent = findParent(menuItem3);
System.out.println("子级菜单项 " + menuItem3.getName() + " 的父级菜单项是:" + parent.getName());
}
}
```
在这个例子中,`MenuItem` 类表示菜单项,其中包含菜单项的 ID、名称和父级菜单项。`Menu` 类包含了一个 `findParent` 方法,用于递归查询子级菜单项的父级菜单项。在 `main` 方法中,创建了三个菜单项,并将第一个菜单项作为整个菜单的根节点。然后,通过调用 `findParent` 方法来查询菜单项 3 的父级菜单项,最终输出结果为:`子级菜单项 菜单项3 的父级菜单项是:菜单项1`。
需要注意的是,如果菜单项的层级非常深,或者菜单项的层级非常多,那么使用递归查询可能会导致栈溢出。因此,应该在实现递归函数时考虑到这些问题,并进行必要的优化。
阅读全文