Inserir elementos em uma List - HashMap<String,List<String>>

1 resposta Resolvido
D

Vou dar um exemplo do que eu preciso fazer para ficar mais fácil de explicar.

Tenho os seguintes dados que estão sendo lidos de um txt:

Chave: 10 Palavra: 1
Chave: 10 Palavra: 1001
Chave: 10 Palavra: 1002
Chave: 10 Palavra: 1006
Chave: 10 Palavra: 1007
Chave: 20 Palavra: 1002
Chave: 20 Palavra: 1004

Como consigo adicionar as palavras dentro da list da mesma chave? Por exemplo:

10 - {1, 1001, 1002, 1006, 1007}
20 - {1002, 1004}

Visto que cada vez que eu leio uma nova linha eu “perco” a chave da linha anterior.
Estava pensando em alguma forma de atualizar a list que já esta inserida, percorrendo o map e verificando se já existe essa chave, mas não sei como implementar essa “atualização”.

Alguém tem como me dar uma luz? Ou alguma ideia melhor…

1 Resposta

LincolnStuart
Solucao aceita

antes de inserir algo no seu Map, você pesquisa se já possui uma chave, se possui, você resgata e adiciona um valor…

List<String> valores; if (mapa.containsKey(chave)) { valores = mapa.get(chave); } else { valores = new ArrayList<>(); } valores.add(valor); mapa.put(chave, valores);

ou

if (mapa.containsKey(chave)) { List<String> valores = mapa.get(chave); valores.add(valor); } else { valores = new ArrayList<>(); valores.add(valor); mapa.put(chave, valores); }

lembre-se que mapa é um HashMap<String, List<String>>.

Criado 17 de junho de 2016
Ultima resposta 17 de jun. de 2016
Respostas 1
Participantes 2