Come creare un 2darray in kotlin di oggetti? [duplica]

0

Domanda

Sono sinceramente scioccato in quanto è difficile trovare una buona spiegazione su come creare una matrice 2d in Kotlin per un oggetto.

Questi sono i miei tentativi da quello che ho trovato né qui su stack e online né al lavoro, perché? come faccio a creare una matrice 2d di oggetti non 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)
        }
    }

Si dice "null non può essere un valore non null tipo" quindi credo che devo usare un arrayofnulls(), ma non riesce a trovare una fonte di qualcuno può aiutarmi o darmi una fonte?

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

Migliore risposta

0

Questo è il modo per creare una Matrice 2D in Kotlin con un oggetto. ArrayofNulls consente di impostare tutti gli indici dell'array null e poi basta inizializzare con un ciclo for!

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

Indovinate un po', non hai nemmeno bisogno di un ciclo for, se si sta andando per inizializzare l'array, basta scrivere val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . Nel caso In cui l'inizializzazione degli elementi dipende dalla indici di un array, è possibile scrivere val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Grazie, ho ragione nel pensare che questo crea una matrice 10x10?
francisRH

@francisRH Beh, sì e no. Kotlin non hanno array multidimensionali o matrici. Questo codice crea un array di 10 matrici e ciascuno interno array ha dimensione di 10. Quindi sì, questo è simile alla matrice 10x10, ma parlando appunto non è una matrice 2d, ma array di array.
broot

In altre lingue

Questa pagina è in altre lingue

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