在我的dao中,我收到一个元组[String,String],其中_1不是唯一的,而_2是唯一的。我根据_1进行分组以获取此信息-
val someCache : Map[String, List[(String, String)]]
这显然是浪费的,因为对Map的所有值都重复了_1。由于_2是唯一的,所以我想要的是-
val someCache : Map[String, Set[String]]
即按_1分组并用作键,并使用成对的_2s作为Set [String]类型的值
def foo(ts: Seq[(String, String)]): Map[String, Set[String]] = {
ts.foldLeft(Map[String, Set[String]]()) { (agg, t) =>
agg + (t._1 -> (agg.getOrElse(t._1, Set()) + t._2))
}
}
scala> foo(List(("1","2"),("1","3"),("2","3")))
res4: Map[String,Set[String]] = Map(1 -> Set(2, 3), 2 -> Set(3))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句