public static void main(String[] args) { HashMap<String,String>map=new HashMap<>(); System.out.println("-------欢迎使用学生管理系统-------"); System.out.println("请选择查询信息"); System.out.println("老师,学生,科目"); Scanner scanner=new Scanner(System.in); String number=scanner.nextLine(); switch (number) { case"老师": System.out.println("请输入想要存储老师的人数"); Scanner scanner1=new Scanner(System.in); int number1=scanner.nextInt(); System.out.println("请先输入老师的信息:"); for (int i=1;i<=number1;i++) { Scanner scanner2=new Scanner(System.in);//往哈西表里存老师的信息并输出; String key=scanner.nextLine(); String value=scanner.nextLine(); map.put(key,value); } for (String key : hashMap.keySet()) { String value = hashMap.get(key); System.out.println(key + ":" + value); } } }这段代码为啥会报错
时间: 2024-02-14 11:04:31 浏览: 75
这段代码会报错是因为在遍历 HashMap 的时候,使用了错误的变量名。在 for 循环中,应该使用 `map` 而不是 `hashMap`。
以下是代码修改后的正确版本:
```
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
System.out.println("-------欢迎使用学生管理系统-------");
System.out.println("请选择查询信息");
System.out.println("老师,学生,科目");
Scanner scanner = new Scanner(System.in);
String number = scanner.nextLine();
switch (number) {
case "老师":
System.out.println("请输入想要存储老师的人数");
Scanner scanner1 = new Scanner(System.in);
int number1 = scanner.nextInt();
System.out.println("请先输入老师的信息:");
for (int i = 1; i <= number1; i++) {
Scanner scanner2 = new Scanner(System.in);
String key = scanner.nextLine();
String value = scanner.nextLine();
map.put(key, value);
}
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println(key + ":" + value);
}
}
}
```
这样就可以正确地往 HashMap 中存储信息,并遍历输出它们了。
阅读全文