假设我有一个返回此方法。
Vector[ (PkgLine, Tree) ]()
我想将其转换为PkgLines列表。我想放弃树。我没有在scala库中看到任何可以让我这样做的东西。有人有什么简单的想法吗?感谢。
答案 0 :(得分:16)
val list = vector.map(_._1).toList
如果您有一个Tupel t
,则可以使用t._1
访问其第一个元素。因此,使用map
操作,您可以有效地丢弃树,并直接存储PkgLines
。然后,您只需将Vector
转换为List
。
答案 1 :(得分:4)
使用map
与该对的第一个元素的选择器一起工作:
scala> val v = Vector[(Int,String)]((5,"5"), (42,"forty-two"))
v: ... = Vector((5,5), (42,forty-two))
scala> v.map(_._1).toList
resN: List[Int] = List(5, 42)
或者,您可以使用unzip
:
scala> val (ints,strings) = v.unzip
ints: scala.collection.immutable.Vector[Int] = Vector(5, 42)
strings: scala.collection.immutable.Vector[String] = Vector(5, forty-two)
scala> ints.toList
resN: List[Int] = List(5, 42)