Kotlinの可変マップ(MutableMap)の使い方を初心者向けに紹介!キーと値を自由に追加・変更・削除しよう
生徒
「Kotlinで、名前と電話番号をセットで管理して、あとから追加したり変更したりしたいんですけど、どうすればいいですか?」
先生
「それなら、Kotlinの『可変マップ(MutableMap)』を使えば、キーと値のペアを自由に追加・変更・削除できますよ。」
生徒
「自由に中身を変えられるんですね!使い方を教えてください!」
先生
「では、Kotlinの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の作り方
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. 値を追加するには?
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. 値を更新(上書き)する方法
すでにあるキーに対して新しい値を代入すると、自動的に上書きされます。
fun main() {
val phoneBook = mutableMapOf("たろう" to "090-1234-5678")
phoneBook["たろう"] = "090-9999-9999"
println(phoneBook)
}
{たろう=090-9999-9999}
キーが同じなら、古い値は消えて、新しい値に置き換わります。
5. 値を削除する方法
特定のデータを削除したいときは、remove()を使います。以下は「はなこ」のデータを削除する例です。
fun main() {
val phoneBook = mutableMapOf("たろう" to "090-1234-5678", "はなこ" to "080-8765-4321")
phoneBook.remove("はなこ")
println(phoneBook)
}
{たろう=090-1234-5678}
指定したキーと、その値がセットで削除されます。
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. 値の存在を確認する方法
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は順序を保証しないという特性もあるため、並び順が重要な場面ではLinkedHashMapやTreeMapのような他の実装も検討すると良いでしょう。
初心者のうちは、キーを文字列、値を数字や文字列にして、電話帳や商品価格表などの身近なテーマから練習してみると理解が早く深まります。そして、キーに重複が許されないというMapのルールも頭に入れておくと、バグを防ぎやすくなります。
生徒
「MutableMapって、最初はちょっと難しそうだと思ったけど、操作自体はすごくシンプルなんですね。」
先生
「そうですね。Kotlinでは直感的に書ける構文が多いので、慣れてくるととても使いやすいと思いますよ。」
生徒
「追加や更新も[]だけで書けるし、remove()で簡単に消せるのも便利でした!」
先生
「マップはデータ管理の基本ですからね。アプリの内部設定やデータ変換など、今後いろんな場面で出てきますよ。」
生徒
「次は、Mapの値をもっと複雑なデータにしてみたり、検索機能に応用してみたいです!」
先生
「それはいいですね。リストや他のMapと組み合わせて使うことで、もっと面白い処理ができるようになりますよ。」