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

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…

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>>.

1 curtida