Як я можу створити масив, як це робимо в Java?
int A[] = new int[N];
Як я можу це зробити в Котліні?
Як я можу створити масив, як це робимо в Java?
int A[] = new int[N];
Як я можу це зробити в Котліні?
Відповіді:
Згідно з посиланням , масиви створюються наступним чином:
Для примітивних типів Яви існують різні типи IntArray
, і DoubleArray
т.д. , які зберігають Unboxed значення.
Вони створюються з відповідними конструкторами та заводськими функціями:
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)
Перший подібний до того, що в Java, він просто створює примітивний масив, заповнений значенням за замовчуванням, наприклад, нулем для Int
, false
для Boolean
.
Непримітивні масиви представлені Array<T>
класом, де T
є тип елементів.
T
все ще може бути один з типів примітивів в Java ( Int
, Boolean
, ...), але значення всередині будуть боксували рівносильно в Java Integer
, Double
і так далі.
Крім того, T
може бути як нульовим, так і ненульовим, як String
і String?
.
Вони створюються подібним чином:
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)
не компілюється. Це тому, що ви не можете створити масив, що не допускає нульового значення, не надавши елементів.
У Kotlin створити IntArray розміром N просто. ВикористовуйтеIntArray(n)
або відповідний тип, як детально описано у відповіді гарячої клавіші.
Використовуючи ваш масив фіксованого розміру, ви можете використовувати Kotlin Destructuring
// Create fixed sized array
val point = IntArray(2)
// Access values directly
val (x, y) = point
У цьому випадку x
буде взято з індексу 0, y
з індексу 1 тощо.
int
, але для об’єктів є stackoverflow.com/questions/32679060/…