The groupBy http://www.scala-lang.org/api/2.12.x/scala/collection/Seq.html#groupBy%5BK%5D(f:A=%3EK):scala.collection.immutable.Map%5BK,Repr%5D函数可以让你实现这一点:
scala> val list = List((1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'd'))
list: List[(Int, Char)] = List((1,a), (1,b), (1,c), (2,a), (2,d))
scala> list.groupBy(_._1) // grouping by the first item in the tuple
res0: scala.collection.immutable.Map[Int,List[(Int, Char)]] = Map(2 -> List((2,a), (2,d)), 1 -> List((1,a), (1,b), (1,c)))