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

Ceci est une façon d'insérer des éléments dans un tableau. mais si j'ai besoin d'initialiser la taille de la matrice dynamiquement ou au moment de l'exécution. Comment pouvons-nous le faire en scala?Est-il possible de créer un tableau dynamique dans scala? Moyens d'insertion de valeurs lors de l'exécution?

+0

'new Array (taille)' 'ou Array.ofDim (taille)' (cette méthode vous permet d'initialiser des tableaux multidimensionnels). Quelle est votre question car il semble que vous savez déjà comment initialiser un tableau? – puhlen

+0

Ceci est l'exécution. Au lieu de 4, vous pouvez écrire ce que vous voulez. – Suma

+0

@HemantChauhan est-ce que ma [réponse] (https://stackoverflow.com/a/46303557/5249621) fonctionne pour vous? –

Répondre

0

Ici

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

Je crée tableau 2 dimensions avec des tailles connues seulement dans l'exécution (je suis entré 10 et 20).


Ou peut-être vous avez besoin scala.collection.mutable.ArrayBuffer si vous allez changer la taille.

ArrayBuffer[Int] est 1 dimensions, est ArrayBuffer[ArrayBuffer[Int]] 2 dimensions, etc.

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

qu'est-ce que c'est (5) (15) = 1 –

+0

Je ne fais qu'illustrer comment travailler avec 'ArrayBuffer [ArrayBuffer [Int]]'. Quand j'ai fait 'ArrayBuffer.fill ...' la valeur de 'arr (5) (15)' était 0, après 'arr (5) (15) = 1' il est devenu 1. –