Scalaのコレクションフレームワークにおける「Map」は、キー(key)と値(value)のペアを管理するデータ構造であり、他の多くの言語における連想配列(または辞書)に相当します。以下に詳細を説明します。
1. 基本概念
Map[K, V]は、キー型Kと値型Vを持つコレクションです。キーは一意であり、同じキーに異なる値を対応させることはできません。
この例では、各国名(キー)に首都(値)が対応づけられています。
2. イミュータブルとミュータブル
Scalaには2種類のMapがあります。
| 種類 | 説明 |
|---|---|
scala.collection.immutable.Map(デフォルト) |
不変(イミュータブル)で、一度作成すると変更できない |
scala.collection.mutable.Map |
可変(ミュータブル)で、キーや値の追加・削除が可能 |
例(ミュータブルMap):
3. 要素へのアクセス
要素を取得するには、キーを使ってアクセスします。
ただし、存在しないキーを指定するとNoSuchElementExceptionが発生します。そのため、安全な方法としてgetメソッドを使用することができます。
4. Mapの操作メソッド
ScalaのMapは高階関数も多く備えています。
| メソッド | 説明 |
|---|---|
+, - |
要素の追加・削除(イミュータブルMapでも可) |
updated |
指定キーの値を更新 |
map, filter |
条件による変換や絞り込み |
keys, values |
キーまたは値だけを取得 |
例:
5. 反復処理
Mapはfor式などでループ処理が可能です。
6. Mapとパターンマッチング
Mapはタプルの集合でもあるため、パターンマッチを使った処理がしやすいのも特徴です。
まとめ
-
Mapはキーと値のペアを格納するコレクション。 -
デフォルトはイミュータブルだが、ミュータブル版も存在。
-
高階関数が使えるため、関数型スタイルで柔軟に操作可能。
-
存在しないキーに対するアクセスには注意が必要。
生成日:2025/05/04