1

私は次のことをどのように達成するかを理解しようとしています。

タプルのリストがあります

scala> List(t1,t2,t3)
res16: List[(Int, java.lang.String)] = List((1001,Test), (1002,Schnitzel), (1001,Käse))

このリストから私が欲しいのはs.thです。このような

List[(Int, Seq[java.lang.String]) = List((1001, Seq(Test, Käse)), (1002, Seq(Schnitzel)))
4

1 に答える 1

2

groupByあなたが望むものをほぼ達成する機能がすでにあります。例えば、

val xs = List(t1, t2, t3)
val m  = xs.groupBy(_._1)

アントリーをxs最初のコンポーネントでグループ化し、マップを作成します

Map(1002 -> List((1002,Schnitzel)), 1001 -> List((1001,Test), (1001,Kaese)))

これには必要なタイプがなく、キーはまだエントリの一部です。これは、たとえば次の方法で解決できます。

val ys : List[(Int, Seq[String])] = m.mapValues(_.map(_._2)).toList
于 2013-03-17T07:28:18.457 に答える