Scala - 按键和映射值对列表进行分组

Scala - group list by key and map values

我正在尝试在 Scala 中做一些事情,

    var  tupleList = new ListBuffer[(String,List[String])]
    val num1 = List("1","2")
    val num2= List("3","4")
    val num3= List("5","6")
    tupleList+=(("Joe",num1))
    tupleList+=(("Ben",num2))
    tupleList+=(("Joe",num3))

**我想合并名称为 'Joe' 的两个列表,并创建一个数字列表: 1,2,5,6 。 所以我想使用groupByKey,但是如何分解这些值呢? 地图值? 在这种情况下如何使用 reduceLeft?

我试过类似的东西:

val try3 = vre.groupMapReduce(_._1)(_._2)(_ :: _)

谢谢!

原理问题在于使用 :: 而不是 :::

对于不可变集合,您的示例将如下所示:

val input =
  ("Joe" -> List("1","2")) ::
  ("Ben" -> List("3","4")) ::
  ("Joe" -> List("5","6")) ::
  Nil

val result = input.groupMapReduce(_._1)(_._2)(_ ::: _)

print(result.mkString("{", ", ", "}"))
// Output:
// {Joe -> List(1, 2, 5, 6), Ben -> List(3, 4)}