Javaのコレクション (List, Set, Map) の使い方と特徴を学ぶ
目次
1. Javaのコレクションとは?
コレクション (Collection) は、Javaのjava.utilパッケージに用意されている、複数のデータを効率的に格納・操作するためのフレームワーク。
今回は代表的な List、Set、Map の3種類から、それぞれ特定の目的に応じた機能を提供します。(厳密にはMapはCollectionインターフェースを実装していませんが、Javaコレクションフレームワークの一部として位置づけられる。)
2. コレクションの種類と特徴
| コレクションの種類 | クラス | 特徴 | 順序 | 重複 | スレッドセーフ |
|---|---|---|---|---|---|
| List | ArrayList, LinkedList, Vector, Stack | 順序あり、重複許可 | 〇 | 〇 | × (ArrayList), 〇 (Vector) |
| Set | HashSet, LinkedHashSet, TreeSet | 順序なし、重複不可 | × (HashSet), 〇 (LinkedHashSet) | × | × |
| Map | HashMap, LinkedHashMap, TreeMap, Hashtable | キーと値のペア、キーは一意で重複しない | △ (LinkedHashMap: 順序保持) | × | × (HashMap), 〇 (Hashtable) |
3. List(リスト)とは?
Listは、順序を保持し、重複する要素を格納できるコレクションです。
主なクラス
- ArrayList
- 最もよく使われるリスト。
- ランダムアクセスが速いが、挿入・削除は遅い。
- LinkedList
- 要素の挿入・削除が速い。
- ランダムアクセスは遅い。
- Vector
- ArrayListのスレッドセーフ版。
- 同時アクセスが必要な場合に使用。
使い方例: ArrayList
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("バナナ");
list.add("みかん");
for (String item : list) {
System.out.println(item);
}
}
}
実行結果
りんご
バナナ
みかん4. Set(セット)とは?
Setは、順序を保証しないが、重複を許さないコレクションです。
主なクラス
- HashSet
- 順序を保持しない高速なセット。
- 一意の要素のみ格納。
- LinkedHashSet
- 挿入した順序を保持するセット。
- TreeSet
- 自然順序(昇順)でソートされるセット。
使い方例: HashSet
import java.util.HashSet;
public class SetExample {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("りんご");
set.add("バナナ");
set.add("りんご"); // 重複は無視される
for (String item : set) {
System.out.println(item);
}
}
}実行結果
りんご
バナナ5. Map(マップ)とは?
Mapは、キーと値のペア(key-valueペア)でデータを格納するコレクションです。
主なクラス
- HashMap
- 順序を保証しないマップ。
- LinkedHashMap
- 挿入した順序を保持。
- TreeMap
- キーが昇順でソートされる。
- Hashtable
- スレッドセーフなマップ(非推奨)。
使い方例: HashMap
import java.util.HashMap;
public class MapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("りんご", 100);
map.put("バナナ", 150);
map.put("みかん", 80);
for (String key : map.keySet()) {
System.out.println(key + "の値段: " + map.get(key));
}
}
}
実行結果
りんごの値段: 100
バナナの値段: 150
みかんの値段: 806. コレクションの使い分け
| 使用シーン | 最適なコレクション | 理由 |
|---|---|---|
| 順序を保持したい | ArrayList | 順序を保持しつつ、重複する要素も格納できる。 |
| データの追加/削除が頻繁 | LinkedList | 挿入と削除が効率的。 |
| 重複を許さないデータを管理 | HashSet | 一意のデータを管理する場合に最適。 |
| データの順序を保持しつつ重複を許さない | LinkedHashSet | データの順序を保持しつつ、重複のない要素を管理できる。 |
| キーと値のペアでデータを管理 | HashMap | キーを使ってデータを効率的に検索可能。 |
| データをソートしたい | TreeMap | 自然順序でソートされたデータを保持できる。 |
7. まとめ
- List: 順序を保持し、重複を許す(
ArrayList,LinkedList)。 - Set: 順序を保証せず、重複を許さない(
HashSet,TreeSet)。 - Map: キーと値のペアでデータを管理(
HashMap,TreeMap)。

2009年那覇でホームレスになるも沖縄の方々に助けられ、2010年からNPOで地域密着で困窮支援。2016-2024年まで株式会社FM那覇代表取締役。沖縄の支援団体情報ポータルサイト「カケハシオキナワ」設立運営。防災士。コンサル・エンジニア。


