我有两个列表
val lst1 = List(1, 1, 1, 1, 1, 2, 2, 3, 3, 3)
val lst2 = List(12, 13, 12, 15, 16, 21, 23, 30, 32, 13)
我想制作一个这样的地图,而lst2中值的顺序在地图中不变:
Map(1->(12,13,12,15,16),2->(21,23),3->(30,32,13))
我该怎么做?
答案 0 :(得分:3)
这是使用zip
和groupBy
的一种方法:
(lst1 zip lst2).groupBy(_._1).mapValues(_.map(_._2))
// res1: scala.collection.immutable.Map[Int,List[Int]] = Map(
// 2 -> List(21, 23), 1 -> List(12, 13, 12, 15, 16), 3 -> List(30, 32, 13)
// )