Arrays 二维数组过滤器如何在scala中获取值
我有一个二维数组Arrays 二维数组过滤器如何在scala中获取值,arrays,scala,filter,multidimensional-array,Arrays,Scala,Filter,Multidimensional Array,我有一个二维数组 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)来获取数组中的值 谢谢!:) 您可以这样做: A.filter(_._1 == 10).map{case (a,b,c,d)=>(b,c,d)} for ((a,b,
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)来获取数组中的值
谢谢!:) 您可以这样做:
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)
或者像这样:
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)
for((a,b,c,d)如果我使用第一种方法,我如何使用值b,c,d?比如:val x=a.filter(u._1==10)。map{case(a,b,c,d)=>(b,c,d)}和x(0)可以得到(Double,Double,Double)=(1.0,2.0,3.0),但如果我想得到的只是值“1.0”,我该怎么办?我是scala的初学者,所以很多概念都不清楚。感谢您的详细回复:)您可以使用语法(1.0,2.0,3.0)。\u 1
获取元组的第一个元素(在本例中为1.0)。类似地,tuple.\u 2
获取第二个元素,依此类推。例如,x(0)。\u 1
将返回1.0。