如何获取数组的索引并将其存储在其他数组中?

时间:2020-08-22 05:02:17

标签: arrays scala

 val x = Array(1,0,0,0,1)
    
 val y = x.zipWithIndex
    
// Array[(Int, Int)] = Array((1,0), (0,1), (0,2), (0,3), (1,4))

我想获取索引(0,1,2,3,4)并将它们存储在另一个数组中。

我曾经以这种方式使用foreach,但是我不知道该怎么做。

val z = y.foreach({case (a,b)=> print(b)  })

这给了我索引,但是如果我使用z.toString,它是一个空字符串。

我该如何解决?

2 个答案:

答案 0 :(得分:4)

我有一个数组。

val x = Array(1,0,0,0,1)

我想获取索引(0,1,2,3,4)并将其存储在另一个数组中。

val y = x.indices.toArray

似乎是没有意义的锻炼。

答案 1 :(得分:1)

这吗?

scala> Array(1,0,0,0,1).zipWithIndex.map(_._ 2) val res1:Array [Int] = Array(0,1,2,3,4)

参见[A]foreach(A => Unit):Unit,foreach将函数从A转换为Unit并返回Unit。

您需要[A]map(A => B):Array[B]。它从A到B接受一个函数并返回一个新的Array [B]。在这种特殊情况下,A和B相同,即Int。

这给了我索引,但是如果我使用z.toString,它是一个空字符串。

好吧,我想说{case (a,b)=> print(b) }不会给您任何东西,它会打印b。但是b丢失了,它不能再被您的程序使用。这就是单位类型的意思。