
Javaのコレクション、使いこなせてる?List, Set, Mapの違いと具体的な使用例を徹底解説!
Javaコレクションフレームワークとは?
Javaコレクションフレームワークは、データの集合を効率的に扱うためのインターフェースとクラスを提供します。これにより、配列よりも柔軟で、様々なデータ構造を簡単に利用できるようになります。List、Set、Mapがその主要な構成要素です。
コレクションフレームワークを理解することで、データの格納、検索、操作をより効率的に行えるようになり、Javaプログラミングのスキルアップに繋がります。
List(リスト)の使い方
Listは、要素に順序があり、重複を許容するコレクションです。ArrayListとLinkedListが代表的な実装クラスです。
ArrayListは、内部に配列を持っており、要素へのアクセスが高速です。一方、LinkedListは、要素が双方向リストで繋がっており、要素の挿入や削除が高速です。
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
// ArrayListの作成
List<String> list = new ArrayList<>();
// 要素の追加
list.add("Apple");
list.add("Banana");
list.add("Orange");
// 要素の取得
String fruit = list.get(0); // Apple
System.out.println(fruit);
// 要素の削除
list.remove(1); // Bananaを削除
// リストのサイズ
int size = list.size(); // 2
System.out.println(size);
// リストのループ処理
for (String s : list) {
System.out.println(s);
}
}
}
Listは、データの順序を保持したい場合や、同じデータを複数格納したい場合に適しています。
Set(セット)の使い方
Setは、要素の重複を許容しないコレクションです。HashSetとTreeSetが代表的な実装クラスです。
HashSetは、内部にハッシュテーブルを持っており、要素の追加や検索が高速です。一方、TreeSetは、要素がソートされた状態で格納されます。
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
// HashSetの作成
Set<String> set = new HashSet<>();
// 要素の追加
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // 重複は無視される
// セットのサイズ
int size = set.size(); // 3
System.out.println(size);
// 要素の存在確認
boolean contains = set.contains("Banana"); // true
System.out.println(contains);
// セットのループ処理
for (String s : set) {
System.out.println(s);
}
}
}
Setは、重複するデータを排除したい場合に適しています。
Map(マップ)の使い方
Mapは、キーと値のペアを格納するコレクションです。HashMapとTreeMapが代表的な実装クラスです。
HashMapは、内部にハッシュテーブルを持っており、キーによる値の検索が高速です。一方、TreeMapは、キーがソートされた状態で格納されます。
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
// HashMapの作成
Map<String, Integer> map = new HashMap<>();
// 要素の追加
map.put("Apple", 100);
map.put("Banana", 200);
map.put("Orange", 150);
// キーによる値の取得
int price = map.get("Banana"); // 200
System.out.println(price);
// キーの存在確認
boolean containsKey = map.containsKey("Apple"); // true
System.out.println(containsKey);
// マップのループ処理
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ": " + value);
}
}
}
Mapは、キーと値を関連付けて管理したい場合に適しています。例えば、商品名と価格、IDとオブジェクトなどを紐付ける場合に使用します。
参考リンク
まとめ
Javaコレクションフレームワークは、List、Set、Mapといった様々なデータ構造を提供し、効率的なデータ管理を可能にします。それぞれの特徴を理解し、適切なコレクションを選択することで、より効率的なプログラミングを実現できます。これらのコレクションはJava開発において非常に重要な役割を果たすため、しっかりとマスターしましょう。