如何在Java Map中高效遍历所有条目并获取键和值?
大家好!我刚开始学习Java,遇到了一个问题。
我有一个HashMap,里面添加了一些数据。例如,我存储了学生姓名和他们的成绩:
```java
Map studentGrades = new HashMap<>();
studentGrades.put("安娜", 90);
studentGrades.put("伊万", 85);
studentGrades.put("玛丽亚", 95);
```
现在我需要将所有学生及其成绩输出到屏幕上。这似乎是一个简单的任务,但我在网上看到很多不同的遍历Map的方法:通过entrySet()、keySet()、values()、lambda、for-each、迭代器……我搞糊涂了。
我试过这样:
```java
for (String key : studentGrades.keySet()) {
System.out.println("学生:" + key + ", 成绩:" + studentGrades.get(key));
}
```
这样是可行的,但有人告诉我这效率不高,因为我每次都要通过key调用get()。如果Map很大呢?如果我不只需要读取,还需要在遍历过程中删除元素呢?我听说过ConcurrentModificationException。
你能