0Pricing
Java Academy · レッスン

2次元配列の基礎とネストした反復処理

2次元配列(不揃いな配列も可)、行と列の違い、m.lengthとm[0].length、ネストしたforによる反復処理を理解します。

「2次元配列の基礎とネストした反復処理」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/6です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全6レッスンが含まれています。

2D とは?

2D 配列は配列の配列です。長方形の場合もあれば、行ごとに長さが異なるジャグ配列の場合もあります。

宣言と作成

宣言して作成します:

public class Main {
  public static void main(String[] args) {
    // Way 1: Create a 2D array with fixed size
    int[][] a = new int[2][3]; 
    // 2 rows, 3 columns → default values = 0
    // [
    //   [0, 0, 0],
    //   [0, 0, 0]
    // ]

    // Way 2: Create and initialize directly
    int[][] b = {
      {1, 2, 3},
      {4, 5, 6}
    };
    // [
    //   [1, 2, 3],
    //   [4, 5, 6]
    // ]

    // Print array a
    System.out.println("Array a:");
    for (int i = 0; i < a.length; i++) {
      for (int j = 0; j < a[i].length; j++) {
        System.out.print(a[i][j] + " ");
      }
      System.out.println();
    }

    // Print array b
    System.out.println("Array b:");
    for (int i = 0; i < b.length; i++) {
      for (int j = 0; j < b[i].length; j++) {
        System.out.print(b[i][j] + " ");
      }
      System.out.println();
    }
  }
}

行と列

行: m.length。列(1行目): m[0].length。ジャグ配列では行ごとに長さが異なるため、各行の長さを確認してください。

入れ子の反復

入れ子のループを使ってすべての要素を訪問します:

public class Main {
  public static void main(String[] args) {
    // Example 2D array (matrix)
    int[][] m = {
      {1, 2, 3},
      {4, 5, 6}
    };

    // Loop over rows
    for (int r = 0; r < m.length; r = r + 1) {
      // Loop over columns in the current row
      for (int c = 0; c < m[r].length; c = c + 1) {
        int value = m[r][c]; // get element at row r, column c
        System.out.print(value + " "); // work: here we print
      }
      System.out.println(); // move to next row
    }
  }
}

行と列の合計

合計を計算します:

public class Main {
  public static void main(String[] args) {
    // Example 2D array (matrix)
    int[][] m = {
      {1, 2, 3},
      {4, 5, 6},
      {7, 8, 9}
    };

    // Sum of row 1 (second row, index = 1)
    int rowSum = 0;
    for (int c = 0; c < m[1].length; c = c + 1) {
      rowSum = rowSum + m[1][c];
    }
    System.out.println("Sum of row 1 = " + rowSum);

    // Sum of column 2 (third column, index = 2)
    int colSum = 0;
    for (int r = 0; r < m.length; r = r + 1) {
      colSum = colSum + m[r][2];
    }
    System.out.println("Sum of column 2 = " + colSum);
  }
}

2D のデモ

実行してみましょう: 合計と行ごとの合計を出力します。

public class Main {
  static int total(int[][] m) {
    int s = 0;
    for (int r = 0; r < m.length; r = r + 1) {
      for (int c = 0; c < m[r].length; c = c + 1) {
        s = s + m[r][c];
      }
    }
    return s;
  }

  static int[] rowSums(int[][] m) {
    int[] sums = new int[m.length];
    for (int r = 0; r < m.length; r = r + 1) {
      int s = 0;
      for (int c = 0; c < m[r].length; c = c + 1) s = s + m[r][c];
      sums[r] = s;
    }
    return sums;
  }

  static String join(int[] a) {
    String s = "";
    for (int i = 0; i < a.length; i = i + 1) {
      s = s + a[i] + (i + 1 < a.length ? " " : "");
    }
    return s;
  }

  public static void main(String[] args) {
    int[][] m = {
      {1, 2, 3},
      {4, 5, 6}
    };

    System.out.println("rows = " + m.length);
    System.out.println("cols of row 0 = " + m[0].length);
    System.out.println("total = " + total(m));

    int[] rs = rowSums(m);
    System.out.println("row sums = " + join(rs));
  }
}

列数

クイックチェック: int[][] m = {{1,2,3},{4,5,6}} の場合、1行目には何列ありますか?

まとめと次のステップ

まとめ: 2D 配列を宣言し、入れ子のループで反復し、合計を計算しました。

次のステップ: ジャグ配列と表の整形を練習します。

よくある質問

「2次元配列の基礎とネストした反復処理」レッスンは無料ですか?

はい。「2次元配列の基礎とネストした反復処理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全6レッスンが含まれています。

「2次元配列の基礎とネストした反復処理」で何を学びますか?

2次元配列(不揃いな配列も可)、行と列の違い、m.lengthとm[0].length、ネストしたforによる反復処理を理解します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/6です。

「2次元配列の基礎とネストした反復処理」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 2次元配列の基礎とネストした反復処理
  2. 不揃いな配列と表の整形
  3. 行・列の最大値、転置、整形
  4. 2次元ミニプロジェクト:成績表
  5. ヘルパークラスとしての2次元ユーティリティ(リファクタリング)
  6. 2次元データのクリーニングと検証
← Java Academyに戻る