크기 만 제공하여 Java 에서처럼 Kotlin에서 배열을 생성하려면 어떻게해야합니까?


답변:


157

참조 에 따르면 배열은 다음과 같은 방식으로 생성됩니다.

  • 자바의 기본 유형의 구별 유형이있다 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 }
    

19
Array<Int>(size)컴파일되지 않습니다. 요소를 제공하지 않고는 nullable이 아닌 배열을 만들 수 없기 때문입니다.
Kirill Rakhman

2
@KirillRakhman, 귀하의 발언에 감사드립니다. 부주의 한 실수였습니다. 결정된.
hotkey

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


0

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

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

Kotlin 문서

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.