Ответ 1
В настоящее время рекомендуется использовать ofDim
:
var myArray = Array.ofDim[Abcd](100, 60)
Это может показаться легким, но я просто не могу понять это.
Как создать 2-мерный массив размером 100 на 60 в Scala? Предположим, у меня есть класс под названием Abcd, и я хочу создать 2-мерный массив Abcd. Я пробовал со следующим кодом, но не работает.
var myArray = new Array[Array[Abcd]](100,60)
Он жалуется "слишком много аргументов для массива конструкторов"
В настоящее время рекомендуется использовать ofDim
:
var myArray = Array.ofDim[Abcd](100, 60)
Или, если вы предпочитаете, чтобы ваш массив начинался с ABCD вместо нулей
Array.fill[ABCD](100,6) { new ABCD }
или если ABCD изменяется каким-то регулярным образом по позиции
Array.tabulate[ABCD](100,6) { (i,j) => new ABCD(i,j) }
Я знаю, что на этот вопрос ответили, но одна проблема, с которой я столкнулся, заключалась в том, что решение @alexwriteshere и решение @Chick были хорошими, если вы хотели получить матрицу.
Чтобы создать двумерный массив с (если смотреть как первое число строк, а затем количество столбцов), сделайте что-то вроде этого:
val array = Array.ofDim[Array[Char]](2)
array(0) = Array.ofDim[Char](10)
array(1) = Array.ofDim[Char](20)