写一个Java四级子菜单查找父级菜单的程序
时间: 2023-03-05 07:57:29 浏览: 197
假设我们有一个菜单类 Menu,其属性包括菜单ID和菜单名字。其中,每个菜单可以有一个父菜单,也可以没有父菜单。
下面是一个根据子菜单查找父级菜单的 Java 程序实现:
```java
import java.util.HashMap;
import java.util.Map;
public class Menu {
private int id;
private String name;
private Menu parentMenu;
public Menu(int id, String name, Menu parentMenu) {
this.id = id;
this.name = name;
this.parentMenu = parentMenu;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public Menu getParentMenu() {
return parentMenu;
}
public static void main(String[] args) {
// 创建一些菜单并将它们放在一个Map中
Menu menu1 = new Menu(1, "菜单1", null);
Menu menu2 = new Menu(2, "菜单2", null);
Menu menu3 = new Menu(3, "菜单3", menu1);
Menu menu4 = new Menu(4, "菜单4", menu2);
Menu menu5 = new Menu(5, "菜单5", menu3);
Map<Integer, Menu> menuMap = new HashMap<>();
menuMap.put(1, menu1);
menuMap.put(2, menu2);
menuMap.put(3, menu3);
menuMap.put(4, menu4);
menuMap.put(5, menu5);
// 查找菜单5的父级菜单
int childMenuId = 5;
Menu childMenu = menuMap.get(childMenuId);
if (childMenu == null) {
System.out.println("菜单" + childMenuId + "不存在");
} else {
Menu parentMenu = childMenu.getParentMenu();
if (parentMenu == null) {
System.out.println("菜单" + childMenuId + "没有父级菜单");
} else {
System.out.println("菜单" + childMenuId + "的父级菜单是:" + parentMenu.getName());
}
}
}
}
```
上述代码创建了一些菜单对象,并将它们放在一个 `HashMap` 中。`HashMap` 中的键是菜单的 ID,值是菜单对象本身。然后,代码查找一个特定的子菜单,即 ID 为 5 的菜单。如果找到该菜单,则获取其父级菜单并输出其名称。如果没有找到该菜单,则输出错误信息。
注意,在实际开发中,菜单通常是通过数据库或者其他方式存储的,而不是硬编码在代码中。在这种情况下,代码可能需要查询数据库或者其他存储方式来查找菜单和它们的父级菜单。
阅读全文