
こんにちは!リンコですピヨ!この記事では自分の勉強の復習もかねて、Kotlinでの配列(Array)を記述する方法を解説するピヨ!
この第12章では、プログラミング言語であるKotlinの配列(Array)について、一緒に勉強していきましょう。
この記事を読めばプログラミング未経験の方も、Kotlin入門レベルの配列(Array)について1つ1つ理解しながら勉強できると思うので、是非最後まで読んで頂ければと思います。
※この記事で出てくる「サンプルコード」は、記述が長く画面からはみ出ている場合がありますが、横にスライドすると表示されるのでご安心ください。
【Kotlin】配列とは?
まず配列とは、どのような処理を行うものなんでしょうか?配列の使い方を勉強する前に、配列がどういった処理を行うものなのかを勉強していきましょう。
変数をまとめて管理するもの
Int型やString型など、同じタイプの変数をまとめて管理したい時に「配列」という仕組みを使います。
配列は、型を入れる「箱」がまとまってくっついているようなイメージになります。
例えば、3つの変数が入っている配列であれば「3つの箱がまとまってくっついている」というような感じです。
別々の型の変数はまとめられない
変数をまとめて管理するものですが、別の型の変数をまとめることはできません。
Int型の配列であればInt型の変数のみ、Double型の配列であればDouble型の変数のみをまとめることができます。

配列は同じ型の変数をまとめて管理する時に使うピヨ!
【Kotlin】配列を使ってみよう
では実際に、同じタイプの変数がまとまった「配列」の使い方を勉強していきましょう。ここでの配列は、例としてInt型を使っていきます。
配列の書式
まず配列を使う場合の書式は以下になります。
val 配列名: IntArray = intArrayOf(値1,値2,値3...)
Arrayという機能を使う
Kotlinでは「Array」という機能を使うことで、配列の仕組みを使用することができます。
上記の書式の「IntArray」は「Int型の配列」という意味になります。また値の「()」の前に「intArrayOf」と記述することで、値を複数入れることができます。
値はコンマで区切る
複数の値は、コンマ(,)で区切るようにします。「、」や「.」で区切ってしまうとエラーになるので注意しましょう。
配列の値には番号がふられている
配列のそれぞれの値には番号が振られています。
その番号のことを「インデックス」と言うのですが、先頭から番号は「1」ではなく「0」になるので注意しましょう。

配列のインデックス番号は「0」から始まるので注意するピヨ!
配列を使ったコードを記述してみよう
では実際に配列を使ったコードを記述してみましょう。
サンプルコード
以下のサンプルコードでは、moneyという配列に3人分の給料の額を格納しています。
val money : IntArray = intArrayOf(180000,200000,220000)
上記では、整数の値を配列に格納しているので「IntArray」や「intArrayOf」となっています。これでInt型の配列moneyが作られました。
配列のコードも省略できる
上記はIntArray型ですが、配列の型も「型推論」の機能で省略することができます。
サンプルコード
以下のサンプルコードでは、型推論を使ってコードを省略して、moneyという配列に3人分の給料の額を格納しています。
val money = intArrayOf(180000,200000,220000)
このように「: IntArray」の部分を省略して、簡潔に記述することができました。
※ここからは、全て型推論を使ってサンプルコードを記述していきます

配列でも型推論が使えるピヨ!
【Kotlin】配列の値を取り出してみよう
配列の作り方がわかったところで、今度は配列の値を取り出してみましょう。
配列の値を取り出す書式
配列の値を取り出す場合の書式は以下のようになります。
配列名[インデックス]
このように配列の名前の後に[]でインデックスを囲うことで、特定の値を取り出すことができます。
配列を取り出すコードを記述してみよう
では実際に、コードを記述して配列の値を取り出してみましょう。
サンプルコード
以下のサンプルコードでは、先程のmoneyという配列に格納された給料を、それぞれ取り出しています。
val money = intArrayOf(180000,200000,220000) println("1人目の給料は${money[0]}円です。") println("2人目の給料は${money[1]}円です。") println("3人目の給料は${money[2]}円です。")
出力
サンプルコードを実行すると、以下のように出力されます。
1人目の給料は180000円です。 2人目の給料は200000円です。 3人目の給料は220000円です。
1人目の給料では[0]と指定されているので、配列の1つ目の「180000」と表示され、その後もインデックス通りに表示されていることがわかりますね。

配列の値を取り出すときは「配列名[インデックス番号]」と記述するピヨ!
【Kotlin】配列はforと組み合わせると便利
配列は、forと組み合わせると良い感じに使うことができます。なぜ組み合わせると良いのか、どのように記述するのかを勉強していきましょう。
forと組み合わせると便利な理由
for文は、順番に同じような処理を繰り返し行うための構文です。それに合わせ、配列は同じようなデータを順番に保存しておくための仕組みです。
forは順番に繰り返す、配列は順番にデータを保存すると両方とも「順番」という仕組みから配列とforは相性が良く、組み合わせることで複雑な内容のコードを簡潔に記述することができます。
forを使った配列のコードを記述してみよう
では実際にforと配列を組み合わせたコードを記述してみましょう。
サンプルコード
以下のサンプルコードでは、先程の3人分の給料の表示をforを使って簡潔に記述しています。
val money = intArrayOf(180000,200000,220000) // forで変数indexに0~2が代入されるまで繰り返し処理 for(index in 0..2) { println("${index+1}人目の給料は${money[index]}円です。") }
出力
サンプルコードを実行すると、以下のように出力されます。
1人目の給料は180000円です。 2人目の給料は200000円です。 3人目の給料は220000円です。
先程のコードではprintln関数を3回記述していたところ、今回は1回記述するだけになりましたが同じ結果になり、簡潔に記述できていることがわかります。
数行ならprintln関数をコピペすればなんとかなりそうですが、もし「100人分の給料を表示する処理を記述して」と言われると面倒になりますよね。
そういった場合は、forと配列を組み合わせるようにしましょう。

配列とforを組み合わせることで長文のコードも簡潔に記述できるピヨ!
forと配列の組み合わせをさらに安全且つ簡潔に記述
このようにforと配列の組み合わせは便利ですが、上記のコードではバグが起こりやすいという欠点もあります。
その理由は、例えば配列の中身の値が3つから5つに増えたり逆に減ってしまった場合です。
値を増減させると「for(index in 0..2)」の数字を変更しなければいけませんが、忘れてしまう可能性があります。
そうするとバグが発生してしまいます。バグが発生しないように且つ、簡潔に記述するには以下のようにします。
サンプルコード
以下のサンプルコードでは、forの条件箇所に配列名を直接記述しています。
val money = intArrayOf(180000,200000,220000) // 配列moneyの中身が変数printに代入されるまで繰り返し処理 for(print in money) { println("給料は${print}円です。") }
出力
サンプルコードを実行すると、以下のように出力されます。
給料は180000円です。 給料は200000円です。 給料は220000円です。
このようにforの条件に配列名を直接記述することで、配列の中身が繰り返し代入されるようになります。
しかしこうすると、最初のように1人目や2人目という記述ができなくなりました。
【Kotlin】withIndexを使ってスマートに記述してみよう
同じように〇人目も表示したい場合には「withIndex」を使っていきます。
withIndexとは?
withIndexは、forでの繰り返し処理の際によく使われるのですが、withIndexを使うことで配列の値とインデックス番号の2つの要素を使って処理を記述することができます。
ですのでwithIndexを使えば、今回の「〇人目の給料」もスマートに記述できるようになります。
withIndexを使った書式
withIndexを使う場合の書式は以下のようになります。
for((変数名1, 変数名2) in 配列名.withIndex()) { 処理内容 }
このようにforの条件の「in」の左側には変数を2つ記述します。1つ目の変数にはインデックス番号が、2つ目の変数には値が代入されます。
inの右側には「配列名.withIndex()」と記述します。このように記述することで、配列の値とインデック番号の2つの要素を使って処理を行うことができます。
withIndexを使った配列のコードを記述してみよう
では実際にwithIndexを使ったコードを記述してみましょう。
サンプルコード
以下のサンプルコードでは、withIndexを使って簡潔に最初と同じように3人分の給料の額を表示します。
val money1 = intArrayOf(180000,200000,220000) // 変数indexにはインデックス番号、money2には給料が代入される for((index, money2) in money1.withIndex()) { println("${index+1}人目の給料は${money2}円です。") }
出力
サンプルコードを実行すると、以下のように出力されます。
1人目の給料は180000円です。 2人目の給料は200000円です。 3人目の給料は220000円です。
withIndexを使うことで「〇人目の給料は〇円です」と簡潔に記述できたことがわかります。

withIndexを使うことで、より複雑なコードが簡潔に記述できるピヨ!
【Kotlin】配列はInt型以外の型でも使える
ここまでの配列の勉強ではInt型を例に説明していきましたが、配列はInt型以外のBoolean型やDouble型など様々な型で使うことができます。
Int型以外の型を使った配列の書式
Int型以外の型を使った書式は以下のようになります。
val 配列名: 型名Array = 型名ArrayOf(配列の値)
基本的に「Array」や「ArrayOf」の前の型名を変えるだけでオッケーです。
String型は少し違う記述になる
ただし、String型のみ少し記述が異なるので注意が必要です。String型の配列の書式は以下のようになります。
val 配列名 = arrayOf(配列の値)
このようにString型は、他の型に比べて簡潔な書式になっています。
まとめ
この記事では、プログラミング言語であるKotlinの配列(Array)について勉強していきましたが、いかがでしたでしょうか?今回の記事をまとめると以下のようになります。
- 同じ型の変数をまとめて管理するのが配列
- 配列にはインデックス番号が振られていて1つ目は「0」から始まる
- インデックス番号を指定することで値を取り出すことができる
- 配列とforは似た性質から、相性が良く組み合わせることでコードを簡潔にできる
- withIndexを使うことで、複雑なコードが簡潔に記述できる
今回勉強した「配列(Array)」や「withIndex」はKotlinの入門レベルの知識になるので、何回も読み直してしっかり覚えておきましょう。

次回の記事では「ListとMutableList」について勉強していくピヨ!
プログラミング未経験の方や入門レベルの方、Kotlinについて詳しくなりたい方は、また一緒に勉強するピヨ!
コメント