web-dev-qa-db-ja.com

サイズを指定するだけで、JavaのようにKotlinで配列を作成するにはどうすればよいですか?

Javaのように配列を作成するにはどうすればよいですか?

int A[] = new int[N];

Kotlinでこれを行うにはどうすればよいですか?

60
Kevin Mathew

参照 に従って、配列は次の方法で作成されます。

  • Javaのプリミティブ型には、 非ボックス化 値を格納するIntArrayDoubleArrayなどの特殊タイプがあります。

    それらは、対応するコンストラクターとファクトリー関数で作成されます。

    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(IntBoolean、...)のプリミティブ型のいずれかですが、内部の値はJavaのIntegerDoubleなど。

    また、Tは、 nullableおよびnon-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 }
    
109
hotkey