Map indexado por mes+ano Guardando uma collection

Senhores,

Estou fazerndo uma rotinha para agrupar registros tendo por chave deste agrupamento o key mes+ano.

para isso dentro do meu for comecei a fazer o seguinte.

map.put(data.getMes()+"/"+data.getAno(), registro);

Porém eu já sei que ele vai sempre sobrescrevendo o elemento que tiver a chave igual.

A pergunta é: como posso fazer para ter a chave e uma coleção de registros. guardadas no map

a saída final seria algo em torno disso

02/2007

  • registro1
  • registro2
  • registro4

obrigado turma.

ola, nao sei exatamente qual a filidade, se sera ordenacao ou
uma procura posterior pelo dado, mas poderia utilizar algo abaixo.

map.put(data.getMes()+"/"+data.getAno() + System.currentTimeMillis(), registro);

ou fazer um sequenciamento um outro tipo de dados por mes
int x=mapSeq.get(“082007”);
e pelo que retornar, adicionar ao map.put(“mes/ano”+x,registro)
e posterior a isso fazer algo assim
mapSeq.put(“081007”,x+1);
e assim sucessivamente…

espero ter ajudado

at+

Sandro Lemanski da Silva

Achoq eu vc não leu bem.

Senhores resolvi da seguinte form

if (!map.containsKey(data.getMes()+"/"+data.getAno())) map.put(data.getMes()+"/"+data.getAno(), new ArrayList()); ((ArrayList)map.get(data.getMes()+"/"+data.getAno())).add(registro);

agradeço,

Você primeiro insere um ArrayList vazio no map pra depois inserir os objetos nele, quando ele já está no map.
Por que você não monta o ArrayList antes e depois insere no map com tudo dentro?