Java で 2 次元配列を初期化する

Rupam Yadav 2023年10月12日
  1. new キーワードと for ループを使って 2 次元配列を Java で初期化する
  2. イニシャライザを使わずに Java で 2D 配列を初期化する
Java で 2 次元配列を初期化する

今回は、Java で 2 次元配列を初期化する方法を学びます。2D 配列とは、1 次元配列の配列のことです。2 次元配列の要素は行列の形で行と列に配置されます。

new キーワードと for ループを使って 2 次元配列を Java で初期化する

以下のコードでは、char 配列 table があり、この配列は new キーワードを用いて宣言されています。2 次元配列 table は 3 行 3 列です。

配列のすべての要素は、値を指定しない場合はデフォルト値を持ちます。int 型の 2 次元配列の場合、各要素にはデフォルト値の 0 が代入されます。ここでは char 型の 2 次元配列を用いているので、デフォルト値は null - \0 となります。

2 次元配列の各要素を繰り返し処理するには、入れ子になった for ループを使用する必要があります。式 table[row].length は列の数を表し、この場合は 3 列です。

'1' + row * 3 + col は、行と列を 0 から 2 の間で変化させると、1 から 9 までの文字が得られます。この方法は、行と列の長さが 3 の場合にのみ機能します。

その後、以下のコードに示すように、2 次元配列の値を行列形式で出力します。

public class Array {
  public static void main(String[] args) {
    char[][] table = new char[3][3];
    for (int row = 0; row < table.length; row++) {
      for (int col = 0; col < table[row].length; col++) {
        table[row][col] = (char) ('1' + row * 3 + col);
      }
    }

    for (int row1 = 0; row1 < table.length; row1++) {
      for (int col1 = 0; col1 < table[row1].length; col1++)
        System.out.print(table[row1][col1] + " ");
      System.out.println();
    }
  }
}

出力:

1 2 3 
4 5 6 
7 8 9 

イニシャライザを使わずに Java で 2D 配列を初期化する

Java で 2 次元配列を宣言して初期化する最も一般的な方法は、配列イニシャライザを用いたショートカット構文を用いることです。ここでは、{{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} を用いて、各行の初期化リストを中括弧で囲んでいます。

上の式は、3 行 3 列の 2 次元配列を持つことを説明しています。このようにして、1 行のコードで 2 次元配列を宣言し、初期化することができました。次に、以下に示すように、2 次元配列は入れ子になった for ループを使って出力されます。

public class Array {
  public static void main(String[] args) {
    int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    for (int row = 0; row < 3; row++) {
      for (int col = 0; col < 3; col++) System.out.print(arr[row][col] + " ");
      System.out.println();
    }
  }
}

出力:

1 2 3 
4 5 6 
7 8 9 
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Array