Olá,
No último capítulo do curso "Java: Dominando as Collections", o professor Paulo Silveira explicou que o HashMap possui a mesma estrutura do HashSet em relação a não guardar a ordem de inserção. No entanto, quando executei o último exemplo proposto pelo professor, notei que, mesmo usando o HashMap, os objetos foram impressos conforme ordem de inserção.
O código é:
Map<String, Integer> nomesParaIdade = new HashMap<>();
nomesParaIdade.put("Paulo", 31);
nomesParaIdade.put("Adriano", 25);
nomesParaIdade.put("Alberto", 33);
nomesParaIdade.put("Guilherme", 26);
Set<String> chaves = nomesParaIdade.keySet();
for (String nome : chaves) {
System.out.println(nome);
}
Collection<Integer> valores = nomesParaIdade.values();
for (Integer idade : valores) {
System.out.println(idade);
}
Set<Entry<String, Integer>> associacoes = nomesParaIdade.entrySet();
for (Entry<String, Integer> associacao : associacoes) {
System.out.println(associacao.getKey() + " - " + associacao.getValue());
}
}
E o resultado impresso foi:
Paulo
Adriano
Alberto
Guilherme
31
25
33
26
Paulo - 31
Adriano - 25
Alberto - 33
Guilherme - 26
Estou com dificuldades para entender. Peço desculpas se cometi algum equívoco e deixei passar algum detalhe. Mas agradeço desde já!