说我有Iterable[(Int, String)]
。我如何获得一系列仅仅是"值"?也就是说,如何从Iterable[(Int, String)] => Array[String]
转换? "键"或者"价值观"不必是唯一的,这就是我把它们放在引号中的原因。
答案 0 :(得分:3)
iterable.map(_._2).toArray
_._ 2:取出由输入变量(_)表示的元组的第二个元素,其名称我不在乎。
答案 1 :(得分:1)
简单地:
val iterable: Iterable[(Int, String)] = Iterable((1, "a"), (2, "b"))
val values = iterable.toArray.map(_._2)
答案 2 :(得分:1)
只需map
可迭代并提取第二个元素(tuple._2
),
scala> val iterable: Iterable[(Int, String)] = Iterable((100, "Bring me the horizon"), (200, "Porcupine Tree"))
iterable: Iterable[(Int, String)] = List((100,Bring me the horizon), (200,Porcupine Tree))
scala> iterable.map(tuple => tuple._2).toArray
res3: Array[String] = Array(Bring me the horizon, Porcupine Tree)
答案 3 :(得分:0)
除了已建议的地图之外,您可能希望在从元组映射到字符串时构建数组,而不是在某些时候进行转换,因为它可能会保存迭代。
import scala.collection
val values: Array[String] = iterable.map(_._2)(collection.breakOut)