どうも、ちょげ(@chogetarou)です。
この記事では、Kotlinのマップについて解説します。
マップとは

マップとは、「キー」と「値」のセットをまとめる機能です。
マップはよく辞書に例えられます。
「キー」は辞書で調べる「キーワード」で、「値」は「検索結果」です。
マップは、この「キーワード」と「検索結果」をまとめて格納できます。
また、そのキーワードから検索結果を取り出すこともできます。
書き方

マップに当たるKotlinの機能が「Map」です。
その書式は次のようになっています。
val 変数名 : Map<キーの型, 値の型 > = mapOf( key to value , key to value)
Map<キーの型 , 値の型>でマップの型が指定できます。
そして、マップを生成する際は、専用のmapOfという関数を使います。
mapOfの引数に、キーと値をtoで繋いで記述します。
複数のセットがある場合は、、カンマ(,)で区切ります
以下は、実際にマップを使用する例です。
val dictionary : Map<String, String> = mapOf("Apple" to "りんご", "banana" to "バナナ")
println(dictionary["Apple"])
println(dictionary["banana"])

Map<String, String>で、キーと値の型を指定し、mapOfでマップを生成しています。
Mapの値は取り出すことができます。
取り出すには、「マップ名[キー]」のようにします。
マップの値を変える
ここまで紹介したマップは、値を取り出すことができても、後から値を変えたり、追加・削除したりすることができません。
もし、マップを後から変更をしたい場合は、Mapとは違うMutableMapを使います。
MutableMapは、Mapの親戚で生成の仕方や値の取り出し方は似ているのですが、要素が変更できるようになっています。
以下は、MutableMapの書式です。
var 変数名 : MutableMap<キーの型, 値の型 >
= mutableMapOf( key to value , key to value)
Mapの書式からMutableを前につけます。
以下は、MutableMapで変更を行なった例です。
val dictionary : MutableMap<String, String> = mutableMapOf("Apple" to "りんご", "banana" to "バナナ")
println(dictionary["Apple"])
dictionary["Apple"] = "アップル"
println(dictionary["Apple"])

キーでの取り出し方は同じで、取り出した後に別の値を代入しています。
Mapで同じようにすると、エラーが出ます。
他にも、MutableMapは、addメソッドで要素の追加、removeメソッドで要素を削除したりすることができます。
まとめ
辞書のように「キー」と「値」のセットをまとめておけるのがマップです。
Kotlinでは、Mapという機能で実装できます。
ただ、Mapは変更ができないので、後から変更などをしたい場合は、MutableMapを使いましょう
コメント