Java でも同じですが、Kotlin でもあまり数値や文字列に特化した配列を使うケースは少ないです。
どちらかというと、List や Map クラスを利用するパターンが圧倒的に多い。
しかし、ちょっとしたループ処理や値の保持には適している部分もあります。
今回は、Kotlin の配列を紹介します。
Int型の配列
Kotlin で Int 型の配列を扱いたい場合は IntArray が用意されています。
1 2 3 4 5 | val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5) for (n in numbers) { println("${n}です") } |
IntArray は型、intArrayOf はカンマ区切りの数値を引数とする関数です。
結果はご察しの通り、以下になります。
1です
2です
3です
4です
5です
ベタに書いても同じ結果となります。
1 2 3 4 5 6 7 | val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5) println("${numbers[0]}です") println("${numbers[[1]]}です") println("${numbers[[2]]}です") println("${numbers[[3]]}です") println("${numbers[[4]]}です") |
配列のインデックスも合わせて表示したい
どうせ配列をループさせるなら、インデックスと値の両方を表示させたいものです。
最初のサンプルを少し改修すると以下のように表現できます。
1 2 3 4 5 | val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5) for ((i, v) in numbers.withIndex()) { println("${i + 1}番目の数値は${v}です") } |
これで、配列のインデックスと値の両方を活用した表現ができました。
1番目の数値は1です
2番目の数値は2です
3番目の数値は3です
4番目の数値は4です
5番目の数値は5です
他の型の配列の定義
ここまでは、Int 型の配列を紹介してきましたが、もちろん他の型にも同様の関数などが用意されています。
val b: BooleanArray = booleanArrayOf(true, false)
val l: LongArray = longArrayOf(1000000000000, 2000000000000, 3000000000000)
一方、数値以外の変数タイプの配列を作る時は arrayOf() を使います。
1 2 3 4 5 | val words = arrayOf("A", "B", "C") for ((i, v) in words.withIndex()) { println("${i + 1}番目の文字は${v}です") } |
実は arrayOf() でも数値は取り扱えるのですが、パフォーマンスを考えると先ほどの intArrayOf() の方が効率がいいです。
次回は List について触れていきたいと思います。