配列はArray<T>クラスであらわされ、C言語などの配列と同じように[]で各項目にアクセスできる。配列の生成と初期化を行う場合、arrayOfを使う。
var nums:Array<Int> = arrayOf(1, 2, 3)
println(nums[0]) // 1を表示
println(nums[1]) // 2を表示
println(nums[2]) // 3を表示
println(nums.size) // 項目数(3)を表示
var strs:Array<String> = arrayOf("abc", "def")
println(strs[0]) // "abc"を表示
println(strs[1]) // "def"を表示
配列の初期値が数列の場合、次のようにラムダ式を使って配列の生成と初期化ができる。
// 偶数で初期化した配列(5個分)
var evens = Array(5, {i -> i * 2})
println(evens[0]) // 0を表示
println(evens[1]) // 2を表示
println(evens[2]) // 4を表示
println(evens[3]) // 6を表示
println(evens[4]) // 8を表示
プリミティブ型の配列を作る場合はByteArray、ShortArray、IntArrayなどを使う。これは、ボクシングオーバーヘッドのない配列が生成されるが、Array<T>の継承ではない。
var nums:IntArray = intArrayOf(1, 2, 3)
println(nums[0]) // 1を表示
println(nums[1]) // 2を表示
println(nums[2]) // 3を表示
println(nums.size) // 項目数(3)を表示
コメント