Jak mogę utworzyć tablicę, tak jak robimy to w Javie?
int A[] = new int[N];
Jak mogę to zrobić w Kotlinie?
Jak mogę utworzyć tablicę, tak jak robimy to w Javie?
int A[] = new int[N];
Jak mogę to zrobić w Kotlinie?
Odpowiedzi:
Zgodnie z referencją tablice są tworzone w następujący sposób:
Dla prymitywnych typów Javy istnieją różne typy IntArray
, DoubleArray
itp które przechowują rozpakowanych wartości.
Tworzone są za pomocą odpowiednich konstruktorów i funkcji fabrycznych:
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)
Pierwsza jest podobna do tej w Javie, po prostu tworzy prymitywną tablicę wypełnioną domyślną wartością, np. Zero for Int
, false
for Boolean
.
Tablice inne niż pierwotne są reprezentowane przez Array<T>
klasę, gdzie T
jest typem elementów.
T
nadal może być jednym z typów prymitywnych w Javie ( Int
, Boolean
...), ale wartości wewnątrz zostaną zapakowane równoważnie do Javy Integer
, Double
i tak dalej.
Ponadto T
może mieć wartość null i non-null, jak String
i String?
.
Są one tworzone w podobny sposób:
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)
nie kompiluje się. Dzieje się tak, ponieważ nie można utworzyć tablicy niepodlegającej wartości null bez podania elementów.
W Kotlinie tworzenie IntArray o rozmiarze N jest proste. Użyj IntArray(n)
lub odpowiedniego typu, dokładnie opisanego w odpowiedzi klawisza skrótu.
Korzystając z tablicy o stałym rozmiarze, możesz użyć Destrukturyzacji Kotlin
// Create fixed sized array
val point = IntArray(2)
// Access values directly
val (x, y) = point
W tym przypadku x
zostanie pobrany z indeksu 0, y
z indeksu 1 itd.
int
, ale w przypadku obiektów jest stackoverflow.com/questions/32679060/ ...