Javaの3大コレクション型「List / Map / Set」ってなに?
Javaのコレクションフレームワークには、List / Map / Setというよく使われる3つの型があります。
それぞれ特徴や用途が異なるので、適切に使い分けることが大切です。
1. List(リスト)
順序あり・重複ありのコレクションです。
配列に似ていますが、サイズが可変で、要素を簡単に追加・削除できます。
import java.util.ArrayList;
ArrayList list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple"); // 重複OK
System.out.println(list.get(0)); // Apple
System.out.println(list.size()); // 3
主な用途
- 順序が重要なデータの管理
- 同じ値が複数あってもよいとき
2. Set(セット)
順序なし・重複なしのコレクションです。
同じ値を入れても1つだけ保持されます。
順序は保証されません(保持順に取り出せるとは限らない)。
import java.util.HashSet;
HashSet set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple"); // 2回目は無視される
System.out.println(set.size()); // 2
主な用途
- 重複を避けたいとき(例:一意なユーザー名)
- 順番にこだわらない一覧
3. Map(マップ)
キーと値のペアでデータを管理します。
キーは重複不可、値は重複OKです。
値を取り出すには、キーを使います。
import java.util.HashMap;
HashMap map = new HashMap<>();
map.put("Apple", 100);
map.put("Banana", 150);
map.put("Apple", 120); // 上書きされる
System.out.println(map.get("Apple")); // 120
主な用途
- データを「名前と値」「IDと内容」などの形で管理したいとき
- 検索キーで素早く値を取得したいとき
3つの違いまとめ
特徴 |
List |
Set |
Map |
順序 |
あり |
なし(順序保証なし) |
キーにより管理 |
重複 |
OK |
NG(1つだけ保持) |
キーはNG、値はOK |
アクセス方法 |
インデックス |
イテレーター等 |
キー |
まとめ
List・Set・Mapは、それぞれ使い方・特徴・目的が異なります。
データの性質に合わせてコレクションを選ぶことで、効率よく、安全にプログラムを作ることができます!
最初は ArrayList
や HashMap
から使い始めるのがおすすめです。