🗃️配列(Array)、より柔軟なリスト(List)

🗃️ 1. 配列(Array)の使い方

配列は、同じデータ型の要素を固定された数だけ、ひと続きの領域に格納する構造です。一度サイズを決めると後から変更できません。

宣言と初期化

配列の宣言には、型名と[]を使います。

① サイズを指定して宣言する(後から値を代入)

Java

// int型の要素を5つ格納できる配列を宣言
int[] scores = new int[5];

// インデックスを指定して値を代入
scores[0] = 80; // 1番目(インデックス0)に代入
scores[4] = 95; // 5番目(インデックス4)に代入
// scores[5] = 100; // エラー!範囲外

② 値を指定して宣言する(初期化子)

宣言と同時に初期値を与える場合、サイズ指定は不要です。

Java

// サイズ3のString型配列が自動的に作成される
String[] names = {"田中", "佐藤", "鈴木"};

要素の取得と反復処理

配列の要素は、インデックス(添え字)を使って取得します。インデックスは必ず 0から 始まります。

Java

String secondName = names[1]; // "佐藤"を取得
int arrayLength = names.length; // サイズ(3)を取得

// 配列の反復処理(拡張for文が便利)
for (String name : names) {
    System.out.println(name);
}

📋 2. リスト(List: ArrayList)の使い方

リストは、配列と異なりサイズを自由に変更できる(要素の追加や削除ができる)データ構造です。Javaでは、ArrayListなどのクラスを使って実現します

宣言と初期化

リストを使うには、Javaの標準機能であるjava.util.Listインターフェースと、その実装クラスであるArrayListを使います。

① 宣言のポイント(ジェネリクス)

リストが扱うデータ型は、< >ジェネリクス)で指定します。また、プリミティブ型(int, booleanなど)は使えず、対応するラッパークラスInteger, Booleanなど)を使う必要があります。

Java

// String型の要素を扱うリストを宣言
import java.util.ArrayList;
import java.util.List;

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

要素の操作

操作メソッド説明
追加list.add(要素)リストの末尾に要素を追加します。
取得list.get(インデックス)指定した位置の要素を取得します。
変更list.set(インデックス, 要素)指定した位置の要素を新しい値に置き換えます。
削除list.remove(インデックス)指定した位置の要素を削除します。
サイズlist.size()現在の要素数を取得します。

実行例

Java

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

cities.add("東京"); // 1つ目に追加 (サイズ: 1)
cities.add("大阪"); // 2つ目に追加 (サイズ: 2)
cities.add("名古屋"); // 3つ目に追加 (サイズ: 3)

System.out.println(cities.get(0)); // 出力: 東京

// 2番目の要素(大阪)を削除
cities.remove(1); // サイズ: 2(東京, 名古屋)

System.out.println(cities.size()); // 出力: 2

リストの反復処理(拡張for文)

リストも配列と同様に、拡張for文で簡単にすべての要素を処理できます。

Java

for (String city : cities) {
    System.out.println("訪問先: " + city);
}

💡 配列とリストの使い分け

特徴配列(Array)リスト(List/ArrayList)
サイズ変更不可(固定)可能(動的)
速度わずかに速い柔軟性がある分、わずかに遅い
データ型プリミティブ型も直接使えるラッパークラス(Integerなど)が必要
用途要素数が最初から決まっている場合要素数が変動する場合、柔軟性が必要な場合

通常、要素数が決まっていない、または追加・削除を頻繁に行う場合はリストを使う方が便利です。