Scala, добавление 2d массивов в 3d массив - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь добавить 2d элементы в 3D массив в scala.

у меня есть эти 4 массива [[,]] & [9,2] & [3,1] & [0,9]

я хочу [[9,2], [ 3,1], [0,9]] <по сути, превратить мой 3d-массив в список 2-х. </p>

import Array._

object thing1 {


var list_of_lists = Array():Array[Array[Int]]
var list_1 = Array(9,2)
var list_2 = Array(3,1)
var list_3 = Array(0,9)
println("lllll")
list_of_lists ++ Array(list_1(0),list_1(1));  // nope          although i get an error here saying illegal start of simple expression
list_of_lists ++ list_2;   // nope 
list_of_lists = concat(list_of_lists, list_1) // also nope 
println(list_of_lists(0)(0) + "          this should be 9")
println("lllll")
}

1 Ответ

0 голосов
/ 23 января 2020

Идиоматически вы, вероятно, хотите что-то вроде

case class Point(x: Int, y: Int)
List(Point(9, 2), Point(3, 2), Point(0, 9))

, но вот несколько примеров использования Array:

val list_of_lists = new Array[Array[Int]](3)

val list_1 = Array(9,2)
val list_2 = Array(3,1)
val list_3 = Array(0,9)

list_of_lists(0) = list_1
list_of_lists(1) = list_2
list_of_lists(2) = list_3

assert(list_of_lists(0)(0) == 9)

или

val list_1 = Array(9,2)
val list_2 = Array(3,1)
val list_3 = Array(0,9)
assert(Array(list_1, list_2, list_3).apply(0)(0) == 9)

или

val list_1 = Array(9,2)
val list_2 = Array(3,1)
val list_3 = Array(0,9)
assert((Array[Array[Int]]() :+ list_1 :+ list_2 :+ list_3).apply(0)(0) == 9)
...