2016-04-15 8 views
2

長さ3の配列を持っています。Array(3,4,5)と、長さがInt、つまり7です。どのようにしてArrayを埋めますか? Arrayの長さがIntに達するまでの最初の要素?Scala配列の最初の要素をArray.sizeまで繰り返す方法

val A = Array(3,4,5) 
val T = 7 
//Desired output Array(3,3,3,3,3,4,5) 

私の現在の方法:

val difflength = T - A.size 
val firstElement = A.head 
val PadArray = (for(i <- 0 to difflength) yield firstElement).toArray 
PadArray ++ A 

は、これを行うための簡単な方法はありますか?

答えて

3

Array's fill methodは、このために便利になる:

val a = Array(3,4,5) 
val b = { 
    val t = 7 
    val diffLength = t - a.size 
    val firstElement = a.head 
    Array.fill(diffLength)(firstElement) ++ a 
} 

結果:

scala> b 
res0: Array[Int] = Array(3, 3, 3, 3, 3, 4, 5) 
+1

ああ、塗りつぶしは、私は現在、良いものを使用していforループよりも優れています。 – GameOfThrows

関連する問題