Scala-将具有多个键的地图转换为平面列表

时间:2018-10-19 09:05:07

标签: scala

我在Scala中有一个具有两个键的地图:-

scala> Map(("Alf", "111-111-111") -> 1)
res0: scala.collection.immutable.Map[(String, String),Int] = Map((Alf,111-111-111) -> 1)

我想将其展平以创建如下列表:-

List(Alf, 111-111-111, 1)

这似乎是一个简单的任务,所以如果答案很明显,我会提前道歉。

3 个答案:

答案 0 :(得分:2)

像这样吗?

Map(("Alf", "111-111-111") -> 1).flatMap { case ((fst, snd), value) => List(fst, snd, value) }

答案 1 :(得分:0)

Map(("Alf", "111-111-111") -> 1).toList.flatMap(tup => tup._1.productIterator.toList :+ tup._2)

这将导致

List[Any] = List(Alf, 111-111-111, 1)

我不确定那不是您真正想要的,因为您说有两把钥匙的地图却没有。您有一张带有一个键的地图,该键是Arity 2的元组。

答案 2 :(得分:0)

这似乎也可行:

Map(("Alf", "111-111-111") -> 1).flatMap(x => List(x._1._1, x._1._2, x._2))