Cómo iterar correctamente todos los elementos de un HashMap en Java? Iteración sobre Map
¡Hola a todos! Soy nuevo en Java y tengo un problema con el recorrido de un HashMap. Tengo un mapa que almacena nombres de estudiantes y sus calificaciones:
```java
HashMap grades = new HashMap<>();
grades.put("Iván", 85);
grades.put("María", 92);
grades.put("Pedro", 78);
```
Quiero mostrar en pantalla todos los estudiantes y sus calificaciones. Intenté usar un bucle for-each normal, pero no me funciona. Escribí esto:
```java
for (String student : grades) {
System.out.println(student + " - " + grades.get(student));
}
```
El compilador se queja: "for-each not applicable to expression type". Entiendo que estoy haciendo algo mal, pero no puedo entender qué exactamente. En internet vi muchas opciones diferentes: algunos usan entrySet(), otros keySet(), y otros incluso iteradores. Necesito una solución simple y clara para mostrar todas las claves y valores. También me gustaría saber qué método se considera el más correcto y eficiente en Java moderno (Java 8+). ¡Gracias de antemano!