Wie kann ich ein Array erstellen, wie wir es in Java tun?
int A[] = new int[N];
Wie kann ich das in Kotlin machen?
Wie kann ich ein Array erstellen, wie wir es in Java tun?
int A[] = new int[N];
Wie kann ich das in Kotlin machen?
Antworten:
Entsprechend der Referenz werden Arrays auf folgende Weise erstellt:
Für Java primitive Typen gibt es verschiedene Arten IntArray
, DoubleArray
etc. , die Speicherung unboxed Werte.
Sie werden mit den entsprechenden Konstruktoren und Factory-Funktionen erstellt:
val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]
val numbersFromOne = IntArray(size) { it + 1 }
val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
Das erste ähnelt dem in Java. Es erstellt lediglich ein primitives Array, das mit dem Standardwert gefüllt ist, z. B. Null für Int
, false
für Boolean
.
Nicht primitive Arrays werden durch die Array<T>
Klasse dargestellt, wobei T
es sich um den Elementtyp handelt.
T
kann immer noch in Java (eine Art primitiver sein Int
, Boolean
...), aber innen werden die Werte äquivalent zu Java verpackt werden Integer
, Double
und so weiter.
Auch T
sein kann sowohl nullable und nicht-null wie String
und String?
.
Diese werden auf ähnliche Weise erstellt:
val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size]
val strings = Array(size) { "n = $it" }
val myStrings = arrayOf("foo", "bar", "baz")
val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size]
val boxedZeros = Array(size) { 0 }
Array<Int>(size)
kompiliert nicht. Dies liegt daran, dass Sie kein nicht nullbares Array erstellen können, ohne die Elemente anzugeben.
In Kotlin ist das Erstellen eines IntArrays der Größe N einfach. Verwenden Sie IntArray(n)
oder den entsprechenden Typ, wie in der Antwort des Hotkeys ausführlich beschrieben.
Wenn Sie ein Array mit fester Größe verwenden, können Sie Kotlin Destructuring verwenden
// Create fixed sized array
val point = IntArray(2)
// Access values directly
val (x, y) = point
In diesem Fall x
wird aus Index 0, y
aus Index 1 usw. entnommen .
int
, aber für Objekte gibt es stackoverflow.com/questions/32679060/…