2011-12-19 17 views
5

Digamos que tengo un método que devuelve esto.Convertir tupla en una lista del primer artículo

Vector[ (PkgLine, Tree) ]() 

Quiero convertir esto en una Lista de PkgLines. Quiero dejar el Árbol. No veo nada en la biblioteca scala que me permita hacer esto. ¿Alguien tiene alguna idea simple? Gracias.

Respuesta

16
val list = vector.map(_._1).toList 

Si usted tiene un Tupel t, puede acceder a su primer elemento utilizando t._1. Entonces, con la operación map, está desperdiciando los árboles y almacena el PkgLines directamente. Luego simplemente convierta el Vector al List.

+4

'breakOut' es una buena manera de saltar intermediario' vectorial ':' vector.map (_._ 1) (collection.breakOut): List [PkgLine] ' – 4e6

4

Usando map con un selector del primer elemento del par de obras:

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) 

Como alternativa, puede utilizar 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) 
Cuestiones relacionadas