如何在Java中正确遍历所有HashMap元素?不同的迭代方式
大家好!我是一名Java初学者,遇到了遍历HashMap的问题。\n\n我有一个存储学生姓名和成绩的HashMap:\n\n```java\nHashMap studentGrades = new HashMap<>();\nstudentGrades.put("伊万", 85);\nstudentGrades.put("玛丽亚", 92);\nstudentGrades.put("彼得", 78);\nstudentGrades.put("安娜", 95);\n```\n\n我需要输出所有学生及其成绩。我尝试使用普通的for-each循环,但它不能直接用于HashMap。\n\n后来我在网上找到了一个使用keySet()的例子:\n\n```java\nfor (String name : studentGrades.keySet()) {\n System.out.println(name + ": " + studentGrades.get(name));\n}\n```\n\n这确实有效,但我听说这种方式效率不高,尤其是对于大型Map。我还看到有人使用entrySet(),但不太明白区别。\n\n请告诉我:\n\n1. Java中遍历HashMap有哪些方式?\n2. 哪种方式被认为最正确且性能最优?