配列: 固定長データ

同じ型のデータを並べる。可変長なら ArrayList。

コインロッカー (Coin Lockers)

配列は「駅のコインロッカー」です。 **インデックス** = ロッカー番号(0から始まる) **要素** = ロッカーの中身 **length** = ロッカーの総数 ロッカーの数(サイズ)は最初に決まっていて変更できません。可変サイズが必要なら ArrayList を使います。

配列
固定長のデータ構造。
length
配列の長さ。
Arrays
配列操作のユーティリティ。

配列

Array Basics
// 配列の宣言と初期化
int[] numbers = {1, 2, 3, 4, 5};
String[] names = new String[3]; // サイズ指定
// 要素アクセス
numbers[0] = 10;
String first = names[0];
// 長さ
int len = numbers.length; // 5
// ループ
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
// 拡張 for (推奨)
for (int n : numbers) {
System.out.println(n);
}
実行結果
10\n2\n3\n4\n5
Bad
// ❌ Bad: 配列サイズを超えるアクセス
int[] arr = new int[5];
arr[5] = 10; // ArrayIndexOutOfBoundsException
Good
// ✅ Good: 境界チェック
int[] arr = new int[5];
if (index >= 0 && index < arr.length) {
arr[index] = 10;
}

パターン

2D, sort, stream
// 多次元配列
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int value = matrix[1][2]; // 6
// 配列のコピー
int[] original = {1, 2, 3};
int[] copy = Arrays.copyOf(original, original.length);
// ソート
int[] nums = {3, 1, 4, 1, 5};
Arrays.sort(nums); // {1, 1, 3, 4, 5}
// 検索
int index = Arrays.binarySearch(nums, 3);
// 配列を List に変換
List<Integer> list = Arrays.asList(1, 2, 3);
// 注意: 固定サイズ、プリミティブ配列は不可
// Stream で処理
int sum = Arrays.stream(nums).sum();
Tip: 可変長が必要なら ArrayList を使う。

合格ライン

拡張 for で配列をループできる
Arrays.sort を使える
配列とArrayListの違いを説明できる

参考リンク

演習課題

課題1: 配列操作
配列をソートして最大値・最小値を求めてください。
課題2: 2次元配列
2次元配列で行列を作成し、合計を計算してください。

次のステップ