我有一个二维数组
val A = Array((10.0,1.0,2.0,3.0),(20.0,4.0,5.0,6.0),(10.0,7.2.8.0,9.0))
如何过滤等于 10 的第一个元素,并获取另一个元素值?
结果如下:
x = Array((1.0,2.0,3.0),(7.2.8.0,9.0))
我可以使用 x(i) 来获取数组中的值
谢谢你 !:)
我有一个二维数组
val A = Array((10.0,1.0,2.0,3.0),(20.0,4.0,5.0,6.0),(10.0,7.2.8.0,9.0))
如何过滤等于 10 的第一个元素,并获取另一个元素值?
结果如下:
x = Array((1.0,2.0,3.0),(7.2.8.0,9.0))
我可以使用 x(i) 来获取数组中的值
谢谢你 !:)
scala> A.filter(_._1 == 10.0).map(t => t.productIterator.toList.tail)
res0: Array[List[Any]] = Array(List(1.0, 2.0, 3.0), List(7.2, 8.0, 9.0))
你可以这样做:
A.filter(_._1 == 10).map{case (a,b,c,d)=>(b,c,d)}
或者像这样:
for ((a,b,c,d) <- A if a == 10) yield (b,c,d)
(顺便说一句,建议您不要在 Scala 中使用数组,除非您真的需要;您应该更喜欢不可变的集合,例如 Seq 和 Vector。这里有一个(有些旧的)对 Scala 集合的介绍。)