[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, falsefor) 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 등에서 가져옵니다 .


답변

다음은 문자열 배열 초기화의 간단한 예입니다.

        var names = Array<String>(<AnotherArray.size>) { i -> "" }

Kotlin 문서


답변