Soy nuevo en Kotlin y quiero crear una matriz multidimensional de una clase personalizada, con null
permitido. Algo como eso
private var array_map = arrayOf<Array<Obstacle?>>() ... array_map[1][2] = Obstacle()
¿Cómo puedo hacerlo? ¡Gracias!
En caso de que necesite el índice de cada elemento en el constructor de los elementos de la matriz:
Declaración:
var matrix: Array<Array<Obstacle?>>
Instanciación e inicialización:
matrix = Array(numRows) { row -> Array(numCols) { col -> Obstacle(row, col) } }
Puede usar private var arrayMap: Array<Array<Obstacle?>> = arrayOf()
. Simplemente envuélvalo con tanto Array<>
como necesite.
No estoy seguro de si esto es lo que quiere, pero imagine que Obstacle
es una clase personalizada con un número de num
como el siguiente
data class Obstacle(var num: Int){}
Una matriz 2D del objeto Obstacle
sería la siguiente:
val array: Array<Obstacle?> = arrayOf(Obstacle(123), Obstacle(234)) val arrayOfArray: Array<Array<Obstacle?>> = arrayOf(array) println(arrayOfArray[0][0]) // would print Obstacle(num=123) println(arrayOfArray[0][1]) // would print Obstacle(num=234)
Por lo tanto, debe declarar su matriz 2D como se muestra a continuación
val arrayOfArray: Array<Array<Obstacle?>> = arrayOf()