2

我有一个二维数组

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) 来获取数组中的值

谢谢你 !:)

4

2 回答 2

0
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))
于 2013-11-06T00:39:32.273 回答
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 集合的介绍

于 2013-11-06T00:40:27.590 回答