Javaのように配列を作成するにはどうすればよいですか?
int A[] = new int[N];
Kotlinでこれを行うにはどうすればよいですか?
回答:
リファレンスによると、配列は次の方法で作成されます。
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であるInt、falseのためにBoolean。
非プリミティブ配列はArray<T>クラスで表されTます。ここで、はアイテムタイプです。
TまだJavaでのプリミティブ型のいずれかになります(Int、Boolean、...)が、値は内部Javaのと同等に箱詰めされInteger、Doubleというように。
また、T両方にすることができNULL可能と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 }
Array<Int>(size)コンパイルされません。これは、要素を指定せずにnull許容でない配列を作成できないためです。
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などから取得されます。
intが、オブジェクトについては、stackoverflow.com