Para cada elemento da tua lista
verifica idade
se ainda não existe lista no mapa para a idade do elemento
cria lista no mapa para a idade do elemento
adiciona o elemento à lista respetiva do mapa
Isso é porque tu não estás a guardar uma lista dentro de cada entrada do Map, mas sim apenas um Aluno.
private final HashMap<Integer, List<Aluno>> mapeamentoDeAlunos;
...
for (Aluno aluno: listaAlunos) {
if (mapeamentoDeAlunos.get(aluno.getIdade()) == null){ // ainda não existia nenhum aluno com esta idade
mapeamentoDeAlunos.put(aluno.getIdade(), new ArrayList<Aluno>()); // cria lista vazia para esta idade
}
mapeamentoDeAlunos.get(aluno.getIdade()).add(aluno); // adiciona o aluno à lista por idades
}
blz, consegui fazer, agora só me resta uma ultima dúvida em relação a isso…
como eu faço para saber quais listas eu possuo?
se eu der um Size, vai me retornar a quantidade de listas, porem se eu utilizar por exemplo mapeamentoDeAlunos.get(0) se não tiver ninguem com 0 anos vai dar erro.
pra isso eu estou utilizando o seguinte código…
[code]
Set s = mapeamentoDeAlunos.entrySet();
Iterator it = s.iterator();
while (it.hasNext()) {
Map.Entry m = (Map.Entry) it.next();
int key = (Integer) m.getKey();
System.out.println(key);
}[/code]
acho algo muito grande para saber somente essa informação… não existe algo mais simples?
edit:
Pessoal um codigo mais facil… rs…
for (Integer key : mapeamentoDeAlunos.keySet()) {
System.out.println(key);
}