Javaの配列について

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]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です