Boa tarde Amigos.
Estou com um problema de lógica “eu acho” e precisei apelar para os amigos do GUJ, não pela solução e sim por uma dica…
Tenho um arquivo texto contendo CHAVE e VALORES, exemplo:
CHAVE1 | valor 1
CHAVE1 | valor 2
CHAVE1 | valor 3
CHAVE1 | valor 4
CHAVE1 | valor 5
CHAVE2 | valor 1
CHAVE2 | valor 2
CHAVE3 | valor 1
Preciso montar um outro arquivo agrupado por CHAVE, exemplo:
"CHAVE1","valor 1,valor 2,valor 3,valor 4,valor 5"
"CHAVE2","valor 1,valor 2"
"CHAVE3","valor 1"
Qual foi minha idéia. Ler linha a linha do arquivo inicial e gravar em um Hash a chave. A cada leitura ele verificaria se a chave já existe…caso existe, ele concatena os valores… mas estou apanhando muito para fechar isso, pois na hora de gerar o outro arquivo com o agrupamento, ele se repete.
while((linha=buffer.readLine()) != null){
result = linha.split(getSpltPerfil());
chave= result[1].replaceAll(separator, "");
valor = result[0].replaceAll(separator, "");
if(!hm.containsKey(chave)){
hm.put(chave, valor );
System.out.println(chave +"-"+valor);
}else{
String temp = hm.get(chave).toString();
temp= temp + "," + valor ;
hm.put(chave, temp);
System.out.println(chave +"-"+valor);
}
}
alguma sugestão para que eu consiga chegar ao resultado:
"CHAVE1","valor 1,valor 2,valor 3,valor 4,valor 5"
"CHAVE2","valor 1,valor 2"
"CHAVE3","valor 1"
Grato