Java Gold SE11対策:List・Set・Mapの違いと徹底比較!

List・Set・Mapの違いと使い分けを完全整理!
Javaのコレクションは非常に便利ですが、種類が多く、違いや使い分けに迷うこともあります。
Java Gold SE11の試験でも、これらのコレクションの「特徴」「使い分け」「挙動の違い」が頻出です。
本記事では、代表的なコレクションである List / Set / Map の違いを、わかりやすく整理していきます。
目次
コレクションって何?
コレクションとは、複数のデータをまとめて扱うための入れ物(コンテナ)です。
java.util パッケージの中にあり、以下のような種類に分かれます:
- List:順序あり・重複可
- Set:順序なし・重複不可
- Map:キーと値のペア
試験では、「何を使うべきか?」という観点で問われることが多く、違いを明確にしておくことが重要です。
List の特徴:順序あり・重複OK
List は 順序を保持し、重複も許す コレクションです。
List<String> list = new ArrayList<>();
list.add(“A”);
list.add(“B”);
list.add(“A”); // 重複OK
実装クラスの違い
| クラス | 特徴 |
| ArrayList | 配列ベースで高速(検索に強い) |
| LinkedList | 双方向リンク構造(挿入・削除に強い) |
| Vector | 同期処理あり(古い) |
試験での注目ポイント
- List.get(int index) で要素を順番に取得できる
- ArrayList と LinkedList の使い分け
- for-each, for, Iterator のループ処理の書き方
Set の特徴:重複なし・順序なし(基本)
Set は 重複を許さないコレクション。基本的に順序は保証されません。
Set<String> set = new HashSet<>();
set.add(“A”);
set.add(“B”);
set.add(“A”); // これは無視される
実装クラスの違い
| クラス | 特徴 |
| HashSet | 高速。順序保証なし |
| LinkedHashSet | 挿入順を保持 |
| TreeSet | 自然順序または比較順序でソート |
試験での注目ポイント
- 要素の追加時に重複がどう扱われるか
- ソートされた順序になる TreeSet
- null の扱い(HashSetはOK、TreeSetはNG)
Map の特徴:キーと値のペア
Map は Key-Value のペア構造。キーは重複不可、値は重複可。
Map<String, Integer> map = new HashMap<>();
map.put(“apple”, 100);
map.put(“orange”, 120);
map.put(“apple”, 150); // キーが重複 → 上書きされる
実装クラスの違い
| クラス | 特徴 |
| HashMap | 高速。順序保証なし |
| LinkedHashMap | 挿入順を保持 |
| TreeMap | キーの順序でソート |
試験での注目ポイント
- 同じキーに対して値が上書きされる
- map.get(“key”) の挙動と、containsKey の使い分け
- Map は Collection インタフェースを継承していない
ソート・順序の違い:実装クラスで挙動が変わる!
試験では、どの実装を使うかで順序がどう変わるか も問われやすいです。
| クラス名 | 挿入順 | ソート順 |
| ArrayList | ○ | ✕(手動) |
| LinkedList | ○ | ✕ |
| HashSet | ✕ | ✕ |
| LinkedHashSet | ○ | ✕ |
| TreeSet | ✕ | ○ |
| HashMap | ✕ | ✕ |
| LinkedHashMap | ○ | ✕ |
| TreeMap | ✕ | ○ |
使い分け早見表
| 目的 | 使うべきコレクション |
| 順番通りに保持+重複OK | List(ArrayListなど) |
| 重複を排除したい | Set(HashSetなど) |
| キーに対応する値を保存したい | Map(HashMapなど) |
| ソートされた状態で保持したい | TreeSet / TreeMap |
まとめ
| 項目 | List | Set | Map |
| 順序 | あり | なし(実装依存) | キーで管理 |
| 重複 | 許可 | 不可 | キー:不可、値:可 |
| 代表例 | ArrayList | HashSet | HashMap |
| 主な用途 | 順番付きの一覧 | 一意な集合 | 対応表(辞書) |




















