java通过map的方式封装菜单结构
时间: 2024-01-24 12:02:47 浏览: 54
Java中可以使用`HashMap`来封装菜单结构。在这个`HashMap`中,我们可以将键值对应于菜单选项和相应的操作。下面是一个简单的示例:
```java
import java.util.HashMap;
import java.util.Scanner;
public class Menu {
private HashMap<Integer, String> menu;
private HashMap<Integer, Runnable> funcs;
public Menu() {
menu = new HashMap<>();
funcs = new HashMap<>();
}
public void addOption(int key, String value, Runnable func) {
menu.put(key, value);
funcs.put(key, func);
}
public void display() {
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("Please select an option:");
for (Integer key : menu.keySet()) {
System.out.println(key + ") " + menu.get(key));
}
choice = scanner.nextInt();
if (menu.containsKey(choice)) {
System.out.println("You selected: " + menu.get(choice));
if (funcs.containsKey(choice)) {
funcs.get(choice).run();
}
} else {
System.out.println("Invalid choice! Please select again.");
}
} while (choice != 0);
}
// Example usage
public static void main(String[] args) {
Menu menu = new Menu();
menu.addOption(1, "Option 1", () -> System.out.println("Function 1 called!"));
menu.addOption(2, "Option 2", () -> System.out.println("Function 2 called!"));
menu.display();
}
}
```
在上面的例子中,我们定义了一个名为`Menu`的类,其中包含了`HashMap`成员变量`menu`和`funcs`,分别用于存储菜单选项和相应的操作。我们提供了一个`addOption()`方法,它可以添加一个菜单选项和相应的操作到`menu`和`funcs`中。在`display()`方法中,我们使用一个循环来显示菜单选项,并等待用户选择一个选项。如果用户输入的选项是有效的,则我们执行相应的操作。否则,我们提示用户重新选择。在这个例子中,操作是通过`Runnable`接口实现的,但是您可以使用任何适合的方法来执行操作。
阅读全文