если у вас есть последовательность кортежей, как это
val keyValue = Seq(
"one" -> "lo",
"two" -> "lol",
"one" -> "la"
)
я бы предложил вам использовать groupBy
как это
println(x.groupBy(_._1).mapValues(_.map(_._2)))
Так как это не хорошо чтобы использовать изменяемые структуры данных в Scala, вы можете подумать о дизайне и попытаться изменить его.
почему вы не получаете желаемого результата из своего кода, потому что у вас есть неизменяемая карта, если вы хотите чтобы обновить карту, вам нужно иметь изменяемую карту, которая предоставляет вам обновление метода, здесь вы принимаете map("one") += "la"
здесь, что происходит, вы получаете listBuffer, когда вы делаете карту ("one"), которая пуста, то вы обновляете это listBuffer с "lo"
с использованием +=
и то же самое с "two" and "one"
Но если вы увидите, что ваша карта все еще пуста, то на карте ничего нет, потому что вы не обновили карту, вы обновили listBuffer. Который вы получаете от map("one")
, который является пустым listBuffer.
вы получите тот же результат, если будете использовать любую строку в печати, как
println(map("").result) //List("lo", "lol", "la")