Cómo crear un 2darray en kotlin de los objetos? [duplicar]

0

Pregunta

Estoy realmente sorprendido de lo difícil que es encontrar una buena explicación sobre cómo crear una matriz 2d de Kotlin de un objeto.

Estos son mis intentos de lo que he encontrado ni aquí en la pila y en línea, ni un trabajo, ¿por qué? ¿cómo puedo crear una matriz 2d de objetos no se construyó en Kotlin!!!

var matrix : Array<Array<myObject?>> = null

//var arr2D = Array(10) { Array(10) { myObject(this) } }

for (i in 0 until 9) {
        for (j in 0 until 9) {
            matrix[i][j] = myObject(this)
        }
    }

Dice "null no puede ser un valor no nulo de tipo" así que supongo que tengo que usar un arrayofnulls(), pero no puede encontrar una fuente alguien me puede ayudar o darme una fuente?

kotlin
2021-11-24 01:01:23
1

Mejor respuesta

0

Esta es la forma de crear una Matriz 2D de Kotlin con un usuario hizo objeto. ArrayofNulls permite establecer todos los índices de la matriz nula y, a continuación, sólo inicializar ellos más tarde con un bucle for!

    val matrix = Array(10) {
        arrayOfNulls<myObject?>(
            10
        )
    }
2021-11-24 01:23:23

Adivinen qué, usted incluso no necesita un bucle for, si usted va a inicializar la matriz, sólo tiene que escribir val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . En caso de que la inicialización de los elementos depende de la matriz de índices, se puede escribir val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Gracias, yo estoy en lo correcto al pensar que esto va a crear una matriz de 10x10?
francisRH

@francisRH Bueno, sí y no. Kotlin no tiene multidimensionales los arrays o matrices. Este código crea una matriz de 10 matrices y cada interior de la matriz tiene un tamaño de 10. Así que sí, esta es similar a la matriz de 10x10, pero hablando precisamente no es una matriz 2d, pero array de arrays.
broot

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................