Cum de a crea un 2darray în kotlin de obiecte? [duplicat]

0

Problema

Eu sunt cu adevărat șocat pe cât de greu este de a găsi o explicație bună despre cum să creați o matrice 2d în Kotlin pentru un obiect.

Acestea sunt încercările mele de ceea ce am găsit nici aici pe stivă și on-line nici munca, de ce? cum pot crea o matrice 2d de obiecte care nu sunt încorporate în 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)
        }
    }

Se spune "nul nu poate fi o valoare de un non-null tip" deci, cred că trebuie să utilizați un arrayofnulls(), dar nu pot găsi o sursă poate cineva sa ma ajute sau dă-mi o sursă?

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

Cel mai bun răspuns

0

Acesta este modul în care creați o Matrice 2D în Kotlin cu un utilizator obiect făcut. ArrayofNulls vă permite să setați toate indexurile într-o matrice nulă și apoi doar le inițializa mai târziu cu o buclă!

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

Ghici ce, nici nu ai nevoie de o buclă, dacă aveți de gând pentru a inițializa matrice, doar scrie val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . În cazul în care inițializarea elementelor depinde de matrice indici, puteți scrie val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Multumesc, am dreptate să cred că acest lucru va crea o matrice 10x10?
francisRH

@francisRH ei Bine, da și nu. Kotlin nu au tablouri multidimensionale sau matrici. Acest cod creează o serie de 10 tablouri și fiecare interioară matrice are dimensiunea de 10. Deci da, acest lucru este similar cu matrice 10x10, dar vorbind mai precis, nu este o matrice 2d, dar o serie de tablouri.
broot

În alte limbi

Această pagină este în alte limbi

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