Map

Kotlinの「Map」は、キーと値のペア(key-value pair)を格納するコレクションです。Mapはデータの関連付けを表現するのに適しており、他のコレクション(ListSet)とは異なり、各要素に一意のキーを持たせることができます。


基本構文と定義

Kotlinでは、Mapはインターフェースであり、主に以下の2つの種類があります:

  • Map(読み取り専用):変更不可

  • MutableMap(変更可能):要素の追加・削除が可能

kotlin
// 読み取り専用のMap val capitalCities: Map<String, String> = mapOf( "Japan" to "Tokyo", "France" to "Paris", "USA" to "Washington, D.C." ) // 変更可能なMap val mutableMap: MutableMap<String, Int> = mutableMapOf( "apple" to 3, "banana" to 5 )

主な操作

要素の取得

kotlin
val tokyo = capitalCities["Japan"] // "Tokyo"

存在確認

kotlin
if ("USA" in capitalCities) { println("USAの首都は${capitalCities["USA"]}") }

値の変更・追加(MutableMapのみ)

kotlin
mutableMap["orange"] = 4 // 追加 mutableMap["apple"] = 10 // 変更

要素の削除(MutableMapのみ)

kotlin
mutableMap.remove("banana")

イテレーション(繰り返し処理)

kotlin
for ((country, capital) in capitalCities) { println("$country の首都は $capital") }

または:

kotlin
capitalCities.forEach { (key, value) -> println("$key -> $value") }

主なプロパティと関数

関数/プロパティ 説明
size 要素の数を返す
isEmpty() Mapが空かどうかを判定
keys すべてのキーを返す
values すべての値を返す
entries キーと値のペアのセットを返す
getOrDefault(key, def) 指定キーの値、またはデフォルト値を取得

不変Map vs 可変Mapの使い分け

  • Map(不変):安全に共有したいときや変更不要な設定値などに適する

  • MutableMap(可変):アプリケーション中で更新される必要がある場合に使用


Kotlinらしい記法

Kotlinでは、toキーワードを用いて簡潔にペアを定義できます:

kotlin
val numbers = mapOf(1 to "one", 2 to "two", 3 to "three")

この記法により可読性が高まり、Mapの初期化が直感的になります。


まとめ

KotlinのMapは、キーと値の対応を効率的に扱える強力なコレクション型であり、読み取り専用または可変として柔軟に使用できます。データの検索・分類・設定管理など、幅広い用途に適しています。

生成日:2025/05/04