カテゴリ: Kotlin 更新日: 2025/12/12

Kotlinの可変マップ(MutableMap)の使い方を初心者向けに紹介!キーと値を自由に追加・変更・削除しよう

Kotlinの可変マップ(MutableMap)の使い方を初心者向けに紹介
Kotlinの可変マップ(MutableMap)の使い方を初心者向けに紹介

先生と生徒の会話形式で理解しよう

生徒

「Kotlinで、名前と電話番号をセットで管理して、あとから追加したり変更したりしたいんですけど、どうすればいいですか?」

先生

「それなら、Kotlinの『可変マップ(MutableMap)』を使えば、キーと値のペアを自由に追加・変更・削除できますよ。」

生徒

「自由に中身を変えられるんですね!使い方を教えてください!」

先生

「では、KotlinのMutableMapの基本的な使い方から実践的な操作まで、初心者でもわかるように一つひとつ解説していきましょう。」

1. 可変マップ(MutableMap)とは?

1. 可変マップ(MutableMap)とは?
1. 可変マップ(MutableMap)とは?

KotlinのMutableMap(ミュータブルマップ)は、「キー」と「値」を1セットとしてデータを管理するコレクションです。最大の特徴は、作成したあとでも中身を自由に追加・変更・削除できる点にあります。

通常のMapは一度作ると中身を変えられませんが、MutableMapなら「あとから編集する前提のデータ管理」に向いています。連絡先一覧や商品リストなど、内容が変わる情報を扱う場面でよく使われます。

たとえば、次のように「名前」をキー、「電話番号」を値として保存できます。

  • 「たろう」 → 「090-1234-5678」
  • 「はなこ」 → 「080-8765-4321」

fun main() {
    val phoneBook = mutableMapOf(
        "たろう" to "090-1234-5678",
        "はなこ" to "080-8765-4321"
    )
    println(phoneBook["たろう"])
}

この例では、キーに「たろう」を指定することで、対応する電話番号を取り出しています。キーを使って値をすぐに探せるのが、マップ型データの分かりやすいポイントです。

2. MutableMapの作り方

2. MutableMapの作り方
2. MutableMapの作り方

mutableMapOf()を使えば、可変マップ(MutableMap)をすぐに作れます。可変マップは、あとからキーと値を追加・変更できるので、まずは「土台となるマップ」を用意するところから始めます。

ここでは分かりやすく、名前(キー)と電話番号(値)をセットで管理する例を見てみましょう。"たろう" to "090-..."のように、toでキーと値をつなぐと1つのペアになります。


fun main() {
    val phoneBook = mutableMapOf(
        "たろう" to "090-1234-5678",
        "はなこ" to "080-8765-4321"
    )
    println(phoneBook)
}

{たろう=090-1234-5678, はなこ=080-8765-4321}

表示結果は「キー=値」という形になります。たとえばphoneBook["たろう"]のように書くと、たろうの電話番号を取り出せます。

初心者向け:空のMutableMapから始める方法

最初は空っぽで作って、あとから追加していく書き方もできます。電話帳を作って、必要な人を少しずつ登録するイメージです。


fun main() {
    val phoneBook = mutableMapOf<String, String>()
    phoneBook["たろう"] = "090-1234-5678"
    println(phoneBook)
}

このように型を指定しておくと、「キーは文字」「値も文字」のマップとして安全に扱えます。

3. 値を追加するには?

3. 値を追加するには?
3. 値を追加するには?

MutableMapでは、新しいキーと値をあとから追加できます。やり方はシンプルで、マップ[キー] = 値の形で代入するだけです。電話帳に新しい連絡先を書き足すイメージだと分かりやすいです。

以下の例では、最初は「たろう」だけ入っているマップに、「じろう」の電話番号を追加しています。


fun main() {
    val phoneBook = mutableMapOf("たろう" to "090-1234-5678")

    phoneBook["じろう"] = "070-0000-0000" // 追加
    println(phoneBook)
}

{たろう=090-1234-5678, じろう=070-0000-0000}

[](角かっこ)の中にキーを書き、右側に値を書けば追加は完了です。もし同じキーがすでにある場合は追加ではなく上書きになりますが、「新しいキーなら追加される」と覚えておくと迷いません。

初心者向け:追加できたかをすぐ確認する

追加した直後に、キーで取り出して表示すると「ちゃんと登録できたか」を確認できます。


fun main() {
    val phoneBook = mutableMapOf("たろう" to "090-1234-5678")
    phoneBook["じろう"] = "070-0000-0000"

    println(phoneBook["じろう"])
}

このように、追加したキーを指定して値が出てくれば成功です。

4. 値を更新(上書き)する方法

4. 値を更新(上書き)する方法
4. 値を更新(上書き)する方法

すでにあるキーに対して新しい値を代入すると、自動的に上書きされます。


fun main() {
    val phoneBook = mutableMapOf("たろう" to "090-1234-5678")
    phoneBook["たろう"] = "090-9999-9999"
    println(phoneBook)
}

{たろう=090-9999-9999}

キーが同じなら、古い値は消えて、新しい値に置き換わります。

5. 値を削除する方法

5. 値を削除する方法
5. 値を削除する方法

特定のデータを削除したいときは、remove()を使います。以下は「はなこ」のデータを削除する例です。


fun main() {
    val phoneBook = mutableMapOf("たろう" to "090-1234-5678", "はなこ" to "080-8765-4321")
    phoneBook.remove("はなこ")
    println(phoneBook)
}

{たろう=090-1234-5678}

指定したキーと、その値がセットで削除されます。

6. Mapの中身を全部見るには

6. Mapの中身を全部見るには
6. Mapの中身を全部見るには

for文を使って、マップの中のすべてのキーと値を表示できます。以下のコードを見てみましょう。


fun main() {
    val fruits = mutableMapOf("りんご" to 120, "バナナ" to 100, "みかん" to 90)
    for ((name, price) in fruits) {
        println("$name は $price 円です")
    }
}

りんご は 120 円です
バナナ は 100 円です
みかん は 90 円です

for ((キー, 値))の形で、すべてのペアを取り出せます。

7. 値の存在を確認する方法

7. 値の存在を確認する方法
7. 値の存在を確認する方法

containsKey()containsValue()を使うと、データの存在を確認できます。


fun main() {
    val map = mutableMapOf("A" to 1, "B" to 2)

    println(map.containsKey("A")) // true
    println(map.containsValue(3)) // false
}

true
false

キーまたは値があるかどうかをチェックしたいときに便利です。

まとめ

まとめ
まとめ

Kotlinの可変マップ(MutableMap)は、「キーと値のペア」でデータを管理しながら、あとから自由に追加・更新・削除ができる便利なコレクションの一つです。この記事では、電話帳や商品リストなどの実例を交えながら、初心者にもわかりやすく基本的な使い方を学びました。

可変マップの基本は、mutableMapOf()で作成し、[]を使って値を追加・変更する操作でした。たとえば、phoneBook["たろう"] = "090-0000-0000"のようにシンプルな構文でデータを操作できるのが特徴です。削除はremove()、全体の繰り返しにはfor ((key, value) in map)が使えるなど、他のコレクションとも共通する書き方があるため、応用もききやすいです。

さらに、データの存在確認ができるcontainsKey()containsValue()も、検索や条件分岐に活用しやすく、実践的なコードの中で大きな力を発揮します。マップ構造を使いこなすと、アプリの設定管理やデータの照合、入力チェック、ランキング処理など、あらゆる場面での柔軟な対応が可能になります。

また、KotlinのMapには「不変(変更不可)」なものと「可変(変更可能)」なものがあり、今回紹介したMutableMapは、値の差し替えや削除が必要なケースでとても重宝されます。アプリ開発やツール制作では、データが変化することが前提の処理が多いため、可変マップは最初に覚えておきたい構造の一つです。

ここでは、基本の使い方をもう一度確認してみましょう。

もう一度!可変マップの基本操作まとめ


// 可変マップの基本操作
fun main() {
    val book = mutableMapOf("さくら" to "080-1111-1111")

    // 追加
    book["そうた"] = "080-2222-2222"

    // 更新
    book["さくら"] = "080-9999-9999"

    // 削除
    book.remove("そうた")

    // 確認
    if (book.containsKey("さくら")) {
        println("さくらの番号は ${book["さくら"]} です")
    }

    // 繰り返し表示
    for ((name, number) in book) {
        println("$name → $number")
    }
}

このサンプルコードのように、1つの変数(map)に対して複数の操作が行えるのがMutableMapの最大の魅力です。コレクションを柔軟に使いこなせるようになると、データを扱う処理の幅が一気に広がります。

また、Mapは順序を保証しないという特性もあるため、並び順が重要な場面ではLinkedHashMapTreeMapのような他の実装も検討すると良いでしょう。

初心者のうちは、キーを文字列、値を数字や文字列にして、電話帳や商品価格表などの身近なテーマから練習してみると理解が早く深まります。そして、キーに重複が許されないというMapのルールも頭に入れておくと、バグを防ぎやすくなります。

先生と生徒の振り返り会話

生徒

「MutableMapって、最初はちょっと難しそうだと思ったけど、操作自体はすごくシンプルなんですね。」

先生

「そうですね。Kotlinでは直感的に書ける構文が多いので、慣れてくるととても使いやすいと思いますよ。」

生徒

「追加や更新も[]だけで書けるし、remove()で簡単に消せるのも便利でした!」

先生

「マップはデータ管理の基本ですからね。アプリの内部設定やデータ変換など、今後いろんな場面で出てきますよ。」

生徒

「次は、Mapの値をもっと複雑なデータにしてみたり、検索機能に応用してみたいです!」

先生

「それはいいですね。リストや他のMapと組み合わせて使うことで、もっと面白い処理ができるようになりますよ。」

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinの構文ルールまとめ!インデント・セミコロンなど初心者が最初に覚えるべきポイント
New2
Kotlin
Kotlinの関数ドキュメンテーションコメント(KDoc)の書き方を徹底解説!初心者でもわかる丁寧なガイド
New3
Kotlin
KotlinでHello Worldを表示するには?最初の1行を実行してみよう
New4
Go言語
Go言語の依存関係管理を始めよう!go modの基本設定と導入手順
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Kotlin
KotlinのAPI通信でGETリクエストを送る方法!初心者向け徹底ガイド
No.3
Java&Spring記事人気No3
Go言語
Go言語のテストでタイムアウト・並行処理を扱うポイント
No.4
Java&Spring記事人気No4
Swift
SwiftのURLSessionでのネットワークエラー対策!再試行とタイムアウトを初心者向けに解説
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.7
Java&Spring記事人気No7
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.8
Java&Spring記事人気No8
Swift
Swift JSONデコード失敗の原因と対処|DecodingError徹底解説