写一个java通过子级菜单找到父级菜单的程序
时间: 2023-03-05 20:55:37 浏览: 93
假设你有一个菜单项的列表,每个菜单项包含一个名称和它的父级菜单项的名称。你可以使用Java编写一个程序来通过子级菜单找到父级菜单,具体实现如下:
```java
import java.util.HashMap;
import java.util.Map;
public class MenuFinder {
private Map<String, String> menuItems = new HashMap<>();
// 添加菜单项
public void addMenuItem(String itemName, String parentName) {
menuItems.put(itemName, parentName);
}
// 通过子级菜单项查找父级菜单项
public String findParent(String itemName) {
String parentName = menuItems.get(itemName);
if (parentName == null) {
return null; // 找不到父级菜单项
} else if (parentName.equals(itemName)) {
return null; // 父级菜单项不能是自己
} else {
String grandParentName = findParent(parentName);
return grandParentName != null ? grandParentName : parentName;
}
}
public static void main(String[] args) {
MenuFinder finder = new MenuFinder();
finder.addMenuItem("A", null);
finder.addMenuItem("B", "A");
finder.addMenuItem("C", "B");
finder.addMenuItem("D", "B");
finder.addMenuItem("E", "C");
finder.addMenuItem("F", "E");
String itemName = "F";
String parentName = finder.findParent(itemName);
if (parentName != null) {
System.out.println("The parent of " + itemName + " is " + parentName);
} else {
System.out.println("Cannot find the parent of " + itemName);
}
}
}
```
在这个程序中,我们使用`HashMap`来存储菜单项和它们的父级菜单项的关系。`addMenuItem`方法用于添加一个菜单项及其父级菜单项。`findParent`方法用于通过子级菜单项查找父级菜单项,如果找不到父级菜单项则返回`null`,如果父级菜单项是自己则也返回`null`,否则递归查找父级菜单项直到找到最顶层的父级菜单项。在`main`方法中我们创建了一个菜单项列表,并通过`findParent`方法找到了子级菜单项"F"的父级菜单项。