これだけ覚えれば大丈夫!Javaコレクションの基本と活用法

アイキャッチ画像

Javaコレクションとは?

1.配列とコレクションの違い

Javaでデータを扱うとき、必ず出てくるのが「配列」と「コレクション」です。どちらも「データをまとめて扱うもの」という意味では似ていますが、役割や使い勝手が異なります。例えば、配列の場合、new int[5];のように予めデータ数を決める必要があります。一方、コレクションはデータの追加・削除ができ、状況に応じてサイズが変わります。

2.なぜコレクションを使うのか

コレクションを使う理由は、「データを効率よく、扱いやすく管理できるから」に尽きます。

例えば

データ数がわからない、後から増減する

 → 配列では不便だけど、Listなら自由に追加・削除できる

重複データを避けたい

 → Setを使えば、自動で重複が排除される

キーと値の組み合わせでデータ管理したい

 → Mapを使うだけで、検索・取得・管理が容易

つまり、コレクションを使うことで、単なるデータの保存だけでなく、データ操作(追加・取得・検索・並び替え・フィルタリングなど)も効率よく行えます。

Javaコレクションの種類

Javaのコレクションには様々な種類がありますが、代表的なのがList、Set、Mapです。

それぞれ役割や特徴が異なるので、使うべき場面も違います。

1.Listの特徴

・順序が保証される(追加した順)

・同じ値(重複データ)も追加できる

・データの取得、追加、削除が手軽

例:ArrayList, LinkedList

2.Setの特徴

・重複データを許さない

例:HashSet, LinkedHashSet, TreeSet

3.Mapの特徴

・キーと値の組み合わせで管理

・キーがユニークである必要がある

例:HashMap, LinkedHashMap, TreeMap

ジェネリクスで安全・便利に使う

1.ジェネリクスで型安全を実現する

ジェネリクスを使うことで、コードが安全でわかりやすく、エラーも減ります。

ジェネリクスの「型パラメータ」は、データの種類を指定できる仕組みです。

List<String> names = new ArrayList<>();

names.add(“Alice”); // 文字列だけ追加できる

ここでList<String>という部分が、「String型だけを扱うリスト」という意味です。

もしジェネリクスを使わず、単なるListを使うと、次の問題が発生します。

List names = new ArrayList();

names.add(“Alice”);     // String

names.add(100);         // Integerも追加できてしまう

後から値を取得したとき、StringなのかIntegerなのかわからず、キャストエラーが発生しやすくなります。

ジェネリクスを使うと、データの種類がコード上で保証されるため、安全で予期せぬエラーが減るのです。

2.Javaコレクションでよく使うジェネリクス例

JavaのListでは、ジェネリクスを使うことで扱うデータの型を明確にでき、コードの安全性・可読性が向上します。

例えば、List<Integer>のように書けば、そのListが数値だけを扱うことが保証され、間違って他の型を追加してしまう心配がありません。

次の例では、List<Integer>を使って、数値だけを管理・取得する方法を示しています。

List<Integer> scores = new ArrayList<>();

scores.add(90);

scores.add(85);

for (Integer score : scores) {

    System.out.println(score);

}