Map構造は、キーと値をセットにしたものを1つの要素として管理するデータ構造です。
Mapについて
Mapは要素にキーを関連付けて管理したい場合に使用します。
要素は他の要素と重複しても構いませんが、キーは重複できません。

Mapの実装クラス
主要なMap系の実装クラスには以下のようなクラスがあります。
| 実装クラス | 特徴 |
|---|---|
| java.util.HashMap | 格納順は管理しない。 キーと値にnull値を使用可。 |
| java.util.TreeMap | キーによって自動的にソートして管理する。 キーと値にnull値は使用不可。 |
| java.util.LinkedHashMap | HashMapに二重リンクリストを追加したもの |
| java.util.Hashtable | 基本的にHashMapと同じ機能であるが、スレッドセーフである点が異なる。 また、比較的古いAPIのため利用は推奨されない。 (スレッドセーフにしたい場合はConcurrentHashMapの使用が推奨される) |
Map系実装クラスの比較
Map系クラスの特徴をまとめると以下のようになります。
| HashMap | TreeMap | LinkedHashMap | Hashtable | |
|---|---|---|---|---|
| キーの重複 | ✕ | ✕ | ✕ | ✕ |
| null値のキー | ◯ | ✕ | ◯ | ✕ |
| 要素の重複 | ◯ | 〇 | ◯ | 〇 |
| null値の要素 | ◯ | 〇 | ◯ | ✕ |
| 自動ソート | ✕ | ◯ | ✕ | ✕ |
| スレッドセーフ | ✕ | ✕ | ✕ | ◯ |
コメント