1

是否可以将异构向量的向量转换为 Scala 中的 Tuple3 列表

IE

Vector(Vector(1,"a","b"),Vector(2,"b","c")) to List(Tuple3(1,"a","b"),Tuple3(2,"b","c"))
4

1 回答 1

7

将每个内部显式转换VectorTuple3

vector.map {
    case Vector(f, s, t) => Tuple3(f, s, t)
}.toList

如果您有可变大小的向量,则可以使用更通用的方法:

def toTuple(seq: Seq[_]): Product = {
  val clz = Class.forName("scala.Tuple" + seq.size)
  clz.getConstructors()(0).newInstance(seq.map(_.asInstanceOf[AnyRef]): _*).asInstanceOf[Product]
}

vector.map(toTuple).toList

但它有限制:向量的最大长度为 22。

于 2014-11-27T06:24:44.433 回答