Jak vytvořit 2darray v kotlin objektů? [duplicitní]

0

Otázka

Jsem opravdu v šoku, jak je těžké najít dobré vysvětlení o tom, jak vytvořit 2d pole v Kotlin pro objekt.

Tohle jsou moje pokusy z toho, co jsem našel, ani tady na stack a on-line, ani práci, proč? jak mohu vytvořit 2d pole objektů, které nejsou postaveny do 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)
        }
    }

To říká, že "null nemůže být hodnota null typ", takže asi budu muset použít arrayofnulls(), ale nemůže najít zdroj může mi někdo pomoci, nebo mi dát zdroj?

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

Nejlepší odpověď

0

To je, jak si vytvořit 2D Pole v Kotlin s uživatelem made objektu. ArrayofNulls umožňuje nastavit všechny indexy v poli null a pak jen inicializovat později je pro smyčce!

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

Hádej, co, vy ani nemusíte pro smyčce, pokud se chystáte k inicializaci pole, stačí napsat val matrix : Array<Array<MyObject>> = Array(10){ Array(10){ MyObject() } } . V případě inicializace prvků závisí na pole indexů, můžete napsat val matrix : Array<Array<MyObject>> = Array(10){ i -> Array(10){ j -> MyObject(i,j) } }
Ricky Mo

Díky, já jsem přímo v myšlení, že to bude vytvořit 10x10 matrix?
francisRH

@francisRH No, ano a ne. Kotlin nemá vícerozměrné pole nebo matice. Tento kód vytvoří pole 10 pole a každé vnitřní pole má velikost 10. Takže ano, je to podobné 10x10 matrix, ale přesně řečeno není 2d pole, ale pole polí.
broot

V jiných jazycích

Tato stránka je v jiných jazycích

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