Avatar ·

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á!