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


回答:


157

リファレンスによると、配列は次の方法で作成されます。

  • Javaのプリミティブ型には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で、それだけでデフォルト値で埋めプリミティブ配列を作成することにsimillarであるIntfalseのためにBoolean

  • 非プリミティブ配列はArray<T>クラスで表されTます。ここで、はアイテムタイプです。

    TまだJavaでのプリミティブ型のいずれかになります(IntBoolean、...)が、値は内部Javaのと同等に箱詰めされIntegerDoubleというように。

    また、T両方にすることができNULL可能とnull以外のようなStringString?

    これらは同様の方法で作成されます。

    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)コンパイルされません。これは、要素を指定せずにnull許容でない配列を作成できないためです。
Kirill Rakhman 2016

2
@KirillRakhman、あなたの発言に感謝します、それは不注意な間違いでした。修繕。
ホットキー

0

Kotlinでは、サイズNのIntArrayを作成するのは簡単です。IntArray(n)ホットキーの回答で詳細に説明されているように、または適切なタイプを使用してください。

固定サイズの配列を利用する場合は、KotlinDestructuringを使用できます

// Create fixed sized array
val point = IntArray(2)

// Access values directly
val (x, y) = point

この場合、xはインデックス0、yインデックス1などから取得されます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.