2017-09-19 9 views
0
var arr=Array.ofDim[Int](4,4) 
arr(0)(0)(0)(0)=12 

これは配列に要素を挿入する方法の1つです。 しかし、私は配列のサイズを動的にまたは実行時に初期化する必要がある場合。スカラーでどうすればいいの?ここスカラーで動的配列を作成する方法はありますか?実行時に値を挿入することを意味しますか?

+0

'新しいアレイ(サイズ)'または 'Array.ofDim(サイズ)は'(このメソッドは、多次元配列を初期化することを可能にする)1次元、ArrayBuffer[ArrayBuffer[Int]]は2次元である等です。配列を初期化する方法をすでに知っているようですが、あなたの質問は何ですか? – puhlen

+0

これは実行時です。 4の代わりにあなたが望むものを書くことができます。 – Suma

+0

@HemantChauhanはあなたのために私の[答え](https://stackoverflow.com/a/46303557/5249621)を働かせますか? –

答えて

0

val n = StdIn.readInt 
val m = StdIn.readInt 
val arr = Array.ofDim[Int](n, m) 
arr(5)(15) = 1 
println(arr.deep.mkString("\n")) 

私はランタイムで知られている大きさの2次元配列を作成した(私は10と20に入りました)。


サイズを変更する場合は、scala.collection.mutable.ArrayBufferが必要です。

ArrayBuffer[Int]

val arr: ArrayBuffer[ArrayBuffer[Int]] = 
    ArrayBuffer.fill(10)(ArrayBuffer.fill(20)(0)) 

arr(5)(15) = 1 
println(arr.mkString("\n")) 

println 

arr(5) += 1 
arr += ArrayBuffer.fill[Int](25)(0) 
println(arr.mkString("\n")) 
+0

これは何ですか?arr(5)(15)= 1 –

+0

私は 'ArrayBuffer [ArrayBuffer [Int]]'を扱う方法を説明しています。 'arr(5)(15)'の 'ArrayBuffer.fill ...'の値が0だったとき、 'arr(5)(15)= 1'の後は1になりました。 –

関連する問題