Cómo iterar eficientemente sobre todas las entradas en un Java Map y obtener clave y valor
¡Hola a todos! Acabo de empezar a aprender Java y me encontré con este problema.
Tengo un HashMap al que agrego algunos datos. Por ejemplo, almaceno nombres de estudiantes y sus calificaciones:
```java
Map studentGrades = new HashMap<>();
studentGrades.put("Anna", 90);
studentGrades.put("Iván", 85);
studentGrades.put("María", 95);
```
Ahora necesito mostrar todos los estudiantes y sus calificaciones en pantalla. Parece una tarea simple, pero veo en internet muchas formas diferentes de iterar sobre un Map: a través de entrySet(), keySet(), values(), lambdas, for-each, iteradores... Estoy confundido.
Probé así:
```java
for (String key : studentGrades.keySet()) {
System.out.println("Estudiante: " + key + ", Calificación: " + studentGrades.get(key));
}
```
Esto funciona, pero me dijeron que no es eficiente porque cada vez hago get() por clave. ¿Y si el Map es grande? ¿Y si necesito no solo leer, sino también eliminar elementos durante la iteración? He oído hablar de ConcurrentModificationException.
Pued