Kotlinのマップ(Map)の基本!キーと値の管理をわかりやすく解説
生徒
「Kotlinで、名前と電話番号みたいに、ペアでデータを管理したいときってどうすればいいんですか?」
先生
「そんなときは、Kotlinの『マップ(Map)』を使います。キーと値をセットで保存できる便利な仕組みです。」
生徒
「キーと値ってなんですか?どういう風に使うんですか?」
先生
「では、KotlinのMapの基本的な使い方から、初心者にもわかるように丁寧に説明していきましょう!」
1. KotlinのMap(マップ)とは?
KotlinのMap(マップ)は、「キー(key)」と「値(value)」をセットで管理するコレクションの一種です。たとえば、名前と電話番号、都道府県と県庁所在地のように、1対1の関係を保存するのに使います。
イメージとしては、住所録や辞書のようなものです。キーワード(キー)を入力すれば、それに対応する情報(値)がすぐに取り出せます。
2. Mapの作り方と基本構文
MapはmapOf()という関数で作成できます。基本の書き方は以下のとおりです。
fun main() {
val phoneBook = mapOf("たろう" to "090-1234-5678", "はなこ" to "080-8765-4321")
println(phoneBook)
}
{たろう=090-1234-5678, はなこ=080-8765-4321}
"たろう" to "090-1234-5678" のように、「キー to 値」という書き方でペアを作ります。
このMapは不変(あとから変更できない)です。
3. 値を取り出すには?
Mapに登録した情報から、特定のキーに対応する値を取り出すには、以下のようにします。
fun main() {
val phoneBook = mapOf("たろう" to "090-1234-5678", "はなこ" to "080-8765-4321")
val taroPhone = phoneBook["たろう"]
println("たろうの電話番号:$taroPhone")
}
たろうの電話番号:090-1234-5678
[](角かっこ)でキーを指定するだけで、対応する値が取り出せます。
4. Mapのループ処理で全体を表示
Mapの中身をすべて表示したいときは、for文とentriesを使ってループ処理を行います。
fun main() {
val capitals = mapOf("東京" to "東京都", "大阪" to "大阪府", "名古屋" to "愛知県")
for ((city, prefecture) in capitals) {
println("$city の県庁所在地は $prefecture です")
}
}
東京 の県庁所在地は 東京都 です
大阪 の県庁所在地は 大阪府 です
名古屋 の県庁所在地は 愛知県 です
(キー, 値)の形で取り出せるので、とても読みやすく書けます。
5. MutableMapで追加・変更・削除する
Mapをあとから変更したい場合は、mutableMapOf()を使って可変のMap(MutableMap)を作ります。
追加・更新
fun main() {
val ages = mutableMapOf("たろう" to 20)
ages["はなこ"] = 22
ages["たろう"] = 21 // 上書き
println(ages)
}
{たろう=21, はなこ=22}
削除
ages.remove("たろう")
println(ages)
{はなこ=22}
キーを指定するだけで簡単に追加・変更・削除ができます。
6. Mapの活用例:教科と点数の管理
たとえば、科目と点数のような関係もMapで表せます。以下は、生徒のテスト結果をMapで管理して表示する例です。
fun main() {
val scores = mutableMapOf("国語" to 80, "数学" to 90, "英語" to 70)
scores["理科"] = 85
println("テスト結果一覧:")
for ((subject, score) in scores) {
println("$subject:$score 点")
}
}
テスト結果一覧:
国語:80 点
数学:90 点
英語:70 点
理科:85 点
このように、1つのキーに1つの値をセットすることで、いろんな場面に活用できます。