[java] 크기 만 제공하여 Java 에서처럼 Kotlin에서 배열을 생성하려면 어떻게해야합니까?
Java 에서처럼 배열을 어떻게 만들 수 있습니까?
int A[] = new int[N];
Kotlin에서 어떻게 할 수 있습니까?
답변
참조 에 따르면 배열은 다음과 같은 방식으로 생성됩니다.
-
자바의 기본 유형의 구별 유형이있다
IntArray
,DoubleArray
저장 등 언 박싱 값.해당 생성자와 팩토리 함수로 생성됩니다.
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와 유사하며 기본값으로 채워진 기본 배열을 생성합니다 (예 : 0 for
Int
,false
for)Boolean
. -
기본이 아닌 배열은 항목 유형이있는
Array<T>
클래스 로 표시됩니다T
.T
여전히 자바에서 기본 유형 중 하나가 될 수 있습니다 (Int
,Boolean
, …)하지만, 값은 내부 자바에 동등 박스 될 것이다Integer
,Double
등등.또한,
T
모두가 될 수 널 (NULL) 및 비 – 널 좋아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 }
답변
Kotlin에서 크기 N의 IntArray를 만드는 것은 간단합니다. IntArray(n)
핫키의 답변에 자세히 설명 된대로 또는 적절한 유형을 사용하십시오 .
고정 크기 배열을 사용할 때 Kotlin Destructuring을 사용할 수 있습니다.
// Create fixed sized array
val point = IntArray(2)
// Access values directly
val (x, y) = point
이 경우 x
인덱스 0, y
인덱스 1 등에서 가져옵니다 .