Javaの配列について
このページでは、Javaにおける配列の基本から応用までを詳しく解説します。各セクションへジャンプするには、以下のリンクをクリックしてください。
配列とは何か?
配列は、同じ型の複数の要素を格納するためのデータ構造です。Javaでは、配列は固定長であり、一度宣言するとそのサイズを変更することはできません。
例えば、5つの整数を格納するには、次のように配列を使用します。
int[] numbers = {1, 2, 3, 4, 5};
各要素にはインデックス(0から始まる番号)でアクセスできます。上記の配列の要素は以下のようにアクセスします:
System.out.println(numbers[0]); // 1
System.out.println(numbers[1]); // 2
System.out.println(numbers[4]); // 5
配列の宣言と初期化
Javaで配列を宣言するには、以下のような構文を使います:
データ型[] 配列名;
例えば、整数型の配列を宣言する場合:
int[] numbers;
宣言後、配列を初期化するには、次のようにします:
numbers = new int[5];
この場合、5つの要素が格納できる配列が作成され、各要素はデフォルト値(整数の場合は0)で初期化されます。
宣言と初期化を一度に行う
配列の宣言と初期化を同時に行うこともできます:
int[] numbers = new int[5];
配列リテラルによる初期化
配列の初期値が決まっている場合、配列リテラルを使うと便利です:
String[] fruits = {"Apple", "Banana", "Orange"};
この方法では、サイズを明示的に指定する必要はありません。
多次元配列
Javaでは、多次元配列(例えば、2次元や3次元配列)を使用することができます。最も一般的なのは2次元配列です。
2次元配列の宣言と初期化
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
要素にアクセスするには、行と列のインデックスを指定します:
System.out.println(matrix[0][1]); // 2
System.out.println(matrix[2][2]); // 9
動的な2次元配列の作成
int[][] dynamicMatrix = new int[3][3];
dynamicMatrix[0][0] = 1;
dynamicMatrix[0][1] = 2;
dynamicMatrix[0][2] = 3;
配列の繰り返し処理
配列の要素を順番に処理するには、for文や拡張for文(for-each文)を使用します。
for文を使った繰り返し
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
拡張for文を使った繰り返し
for (int number : numbers) {
System.out.println(number);
}
配列の基本的な操作
配列の長さを取得する
配列の長さはlength
フィールドで取得できます:
int[] numbers = {1, 2, 3};
System.out.println(numbers.length); // 3
配列の要素の変更
numbers[1] = 10;
System.out.println(numbers[1]); // 10
Arraysクラスの活用
Javaにはjava.util.Arrays
クラスが用意されており、配列の操作を効率的に行えます。
配列のソート
import java.util.Arrays;
int[] numbers = {5, 2, 9, 1, 3};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 2, 3, 5, 9]
配列の検索
int index = Arrays.binarySearch(numbers, 3);
System.out.println(index); // 2
配列の制限と注意点
Javaの配列にはいくつかの制限があります:
- 一度サイズを決めると変更できない(固定長)。
- 型が固定されているため、異なる型の要素は格納できない。
- 要素数が大きい場合、メモリ消費が大きくなる可能性がある。
これらの制限を回避するためには、ArrayListなどのコレクションを使用することを検討してください。
ArrayListの例
import java.util.ArrayList;
ArrayList list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
System.out.println(list); // [Apple, Banana]