Como iterar corretamente sobre todos os elementos de um HashMap em Java? Iteração sobre Map
Olá a todos! Sou novo em Java e tive um problema ao percorrer um HashMap. Tenho um mapa que armazena nomes de estudantes e suas notas:
```java
HashMap grades = new HashMap<>();
grades.put("Ivan", 85);
grades.put("Maria", 92);
grades.put("Pedro", 78);
```
Quero exibir na tela todos os estudantes e suas notas. Tentei usar um loop for-each comum, mas não deu certo. Escrevi assim:
```java
for (String student : grades) {
System.out.println(student + " - " + grades.get(student));
}
```
O compilador reclama: "for-each not applicable to expression type". Entendo que estou fazendo algo errado, mas não consigo entender exatamente o quê. Na internet vi muitas opções diferentes: alguns usam entrySet(), outros keySet(), e outros até iteradores. Preciso de uma solução simples e clara para exibir todas as chaves e valores. Também gostaria de saber qual método é considerado o mais correto e eficiente no Java moderno (Java 8+). Agradeço desde já!