Coleções Scala, valores múltiplos de chave única

Eu tenho uma lista de chaves pai, cada qual poderia ter zero ou mais valores associados. Não tenho certeza de qual coleção usar.

estou usandoMap[Int,List[String]]

Eu estou declarando o mapa como

<code>var nodes = new HashMap[Int, List[String]]
</code>

Então eu tenho dois métodos para lidar com a adição de novos elementos. O primeiro é adicionar novas chavesaddNode e o segundo é adicionar novos valoresaddValue. Inicialmente, a chave não terá nenhum valor associado a ela. Mais tarde, durante a execução, novos valores serão associados.

<code>def addNode(key: Int) = nodes += (key -> "")

def addValue(key: Int, value: String) = ???
</code>

Não tenho certeza de como implementaraddValues

Atualizar:

Em resposta à resposta @ oxbow-lakes, este é o erro que estou recebendo. Por favor, note que as chaves não precisam ter valores associados a elas.

<code>scala> var nodes = Map.empty[Int, List[String]]
nodes: scala.collection.immutable.Map[Int,List[String]] = Map()

scala> nodes += (1->null)

scala> nodes += (1 -> ("one" :: (nodes get 1 getOrElse Nil)))
java.lang.NullPointerException
    at .<init>(<console>:9)
    at .<clinit>(<console>)
    at .<init>(<console>:11)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:704)
    at scala.tools.nsc.interpreter.IMain$Request$$anonfun$14.apply(IMain.scala:920)
    at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV$sp(Line.scala:43)
    at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
    at java.lang.Thread.run(Thread.java:680)
</code>
Atualização 2:

O problema com o código acima é a linhanodes += (1->null) a chave deve ser associada comNil em vez de. Abaixo está o código de trabalho.

<code>scala> var nodes = Map.empty[Int, List[String]]
nodes: scala.collection.immutable.Map[Int,List[String]] = Map()

scala> nodes += (1->Nil)

scala> nodes += (1 -> ("one" :: (nodes get 1 getOrElse Nil)))

scala> nodes
res27: scala.collection.immutable.Map[Int,List[String]] = Map(1 -> List(one))
</code>

questionAnswers(3)

yourAnswerToTheQuestion