java 菜单从底层节点查询并返回所有上级
时间: 2024-05-06 08:16:17 浏览: 10
假设你有一个 `Menu` 类,它具有以下属性:
```java
public class Menu {
private String name;
private Menu parent;
// 构造函数和其他方法
}
```
其中 `name` 属性是菜单项的名称, `parent` 属性是当前菜单项的父菜单项。
为了查询当前菜单项的所有上级菜单项,你可以使用递归算法来实现:
```java
public List<Menu> getAllParents() {
List<Menu> parents = new ArrayList<>();
if (parent != null) {
parents.add(parent);
parents.addAll(parent.getAllParents());
}
return parents;
}
```
这个方法首先创建一个 `List` 来存储所有的上级菜单项,然后检查当前菜单项是否有父菜单项。如果有父菜单项,那么就把它加入到 `List` 中,然后递归调用 `getAllParents()` 方法来获取更高层次的菜单项,最后把这些菜单项全部加入到 `List` 中并返回。
使用这个方法,你可以轻松地获取当前菜单项的所有上级菜单项:
```java
Menu currentMenu = ...; // 获取当前菜单项
List<Menu> allParents = currentMenu.getAllParents();
```