はじめに
こんにちは。キノコードです。
「【5分レッスン】Kotlin超入門コース#08 配列」について説明します。
配列とは?
配列とは、複数のデータを格納することができるデータ型です。
変数のレッスンでは、変数は「箱」と説明しました。
例えるなら、変数は1つのデータしかいれらない「箱」なのに対して、配列は複数のデータを入れることができる「ロッカー」です。
1列の配列のことを1次元配列といい、2列以上ある配列は多次元配列といいます。
配列の1つ1つの箱のことを要素といい、箱の数を要素数といいます。
配列のそれぞれの要素には、場所の情報が割り当てられています。
データが住んでいる住所のようなものです。
この住所には、インデックスという番号というものが割り当てられています。
インデックスのことを「添え字」といったりもします。このレッスンでは、インデックスという名前で進めていきます。
一番左のインデックスは0から始まります。1から始まるわけではないので注意です。
そのため、1番最初のインデックスは「0」、2番目のインデックスは「1」、3番目は「2」、4番目は「3」といったように、インデックスは配列が格納されている「順番 - 1」となっています。
配列の宣言
それでは、配列の作り方をみていきましょう。
配列の作り方はいくつかあるのですが、今回はarrayListOf関数を使います。
書き方のきまりは次のとおりです。
var 変数名 = arrayListOf(データ1, データ2, …);
val 変数名 = arrayListOf(データ1, データ2, …);
val、もしくはvarを書いて、変数名、そのあとにイコールを書きます。
次にarrayListOf、丸括弧を書き、括弧内にデータを入れます。
これだけではわかりにくいと思うので、ソースコードを見ていきましょう。
fun main() {
val a = arrayListOf("sato", "suzuki", "takahashi");
println(a[0])
println(a[1])
println(a[2])
}
このコードは、aという変数に、arrayListOfで’sato’,'suzuki','takahashi'という3つのデータを代入する配列を作るものです。
コードの意味を説明していきます。
最初にvalと書いて、変数名を記述します。
イコールを書いて、arrayListOf。次に丸括弧内に’sato’,'suzuki','takahashi'を記述します。
変数aのあとにインデックスを書いて、データを表示します。
表示されました。
配列の要素の変更方法
fun main() {
val a = arrayListOf("sato", "suzuki", "takahashi");
a[1] = "tanaka"
println(a[0])
println(a[1])
println(a[2])
}
配列のデータの変更をしてみましょう。
要素を指定して代入します。
配列の2番目の鈴木さんを田中さんにしてみます。
2番めなので角括弧に書く要素数は1です。
変更されているか確認してみましょう。
suzukiさんがtanakaさんに変わっています。
多次元配列
fun main() {
val a1 = arrayListOf("sato", "suzuki")
val a2 = arrayListOf("takahashi", "tanaka")
val parent_arr = arrayListOf(a1, a2);
println(parent_arr[0][0])
println(parent_arr[0][1])
println(parent_arr[1][0])
println(parent_arr[1][1])
}
次に多次元配列を作ってみましょう。
多次元配列とは、配列の要素に配列が入っているデータのことです。
2階層の配列を2次元配列、3階層の配列を3次元配列と言います。
今回は2次元の配列を作ってみましょう。
2次元配列は、配列の要素に配列を代入すればよいです。
まず、a1という配列と、a2という配列を作ります。
その配列を、parent_arrという配列の要素とします。
要素へのアクセス方法についてです。
2次元配列の場合は、角括弧を2回使用すれば良いです。
satoさんは、1つの配列の、1番目です。なので、0の0です。
suzukiさんは、1つの配列の、2番目です。なので、0の1です。
tanakaさんは、2つの配列の、1番目です。なので、1の0です。
takahashiさんは、2つの配列の、2番目です。なので、1の1です。
表示してみましょう。
satoさん、suzukiさん、takahashiさん、tanakaさんが表示されました。