Jak stworzyć 2darray w kotlin obiektów? [duplikat]

0

Pytanie

Jestem szczerze zaskoczony tym, jak trudno jest znaleźć dobre wyjaśnienie tego, jak stworzyć 2d-tablica w Котлине dla obiektu.

To moje próby z tym, że nie znalazłem ani tu, w stosie, ani w Internecie, ani w pracy, dlaczego? jak stworzyć 2d tablicę obiektów, nie osadzonych w 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)
        }
    }

Tam jest napisane "null nie może być wartością niezerowego rodzaju", więc zakładam, że będę musiał użyć arrayofnulls (), ale nie mogę znaleźć źródła. Czy może ktoś mi pomóc lub podać mi źródło?

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

Najlepsza odpowiedź

0

Oto jak tworzysz 2D-tablica w Котлине przy użyciu niestandardowego obiektu. ArrayofNulls pozwala ustawić wszystkie indeksy w tablicy równe zero, a następnie po prostu zainicjować je później za pomocą pętli for!

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

Wiecie, że nawet nie potrzebny jest pętla for, jeśli masz zamiar zainicjować tablicę, po prostu napisz val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . W przypadku, gdy inicjalizacja elementów zależy od indeksów tablicy, można napisać val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Dziękuję, mam rację, myśląc, że to stworzy macierzy 10x10?
francisRH

@francisRH Cóż, i tak, i nie. W Котлине nie ma tablic wielowymiarowych lub płytki. Ten kod tworzy tablicę z 10 tablic, i każdy wewnętrzny tablica ma rozmiar 10. Więc tak, to wygląda na matrycy 10x10, ale, mówiąc dokładniej, to nie 2d tablicy, a tablicę tablic.
broot

W innych językach

Ta strona jest w innych językach

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