【Java】2次元配列の表示方法まとめ|初心者向けサンプル付き解説

お疲れ様です。はるさらと申します。

Javaを学んでいくと「2次元配列」を扱う場面に必ず出てきます。
例えばテストの点数表や行列演算などで使われますが、
実際にプログラムで扱う際には「どうやって中身を表示すればいいのか?」
つまずくことが多いです。

この記事では、Javaにおける2次元配列の表示方法について、
経験の浅い方でもわかりやすいように具体例を交えながら解説します。

基本的な方法から実務でも使える書き方、
代替手法まで整理して紹介していきます。


2次元配列の表示方法の基本

まずは最も基本的な方法です。2次元配列は「配列の配列」なので、
表示するには二重ループを使うのが一般的です。

サンプルコード(基本例)

class Main {
    public static void main(String[] args) {
        int[][] scores = {
            {80, 90, 85},
            {70, 88, 92},
            {60, 75, 80}
        };

        for (int i = 0; i < scores.length; i++) {
            for (int j = 0; j < scores[i].length; j++) {
                System.out.print(scores[i][j] + " ");
            }
            System.out.println(); // 改行
        }
    }
}

出力結果

80 90 85 
70 88 92 
60 75 80 

このように、行ごとに列をループして出力すれば、表のように表示できます。


Arrays.deepToStringを使う方法

実は、Javaの標準ライブラリには配列をわかりやすく表示する仕組みが用意されています。
Arrays.toString() は1次元配列用ですが、
2次元配列には Arrays.deepToString() を使います。

サンプルコード(ライブラリ利用例)

import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        int[][] scores = {
            {80, 90, 85},
            {70, 88, 92},
            {60, 75, 80}
        };

        System.out.println(Arrays.deepToString(scores));
    }
}

出力結果

[[80, 90, 85], [70, 88, 92], [60, 75, 80]]

一行で表示されますが、中身の構造がすぐ確認できるのでデバッグに便利です。


実務で便利な整形表示

実務では「ただ表示する」だけでなく、
表のように整形して見やすくすることが多いです。
その際には String.format を使うのが便利です。

サンプルコード(実務向け整形表示)

class Main {
    public static void main(String[] args) {
        int[][] scores = {
            {80, 90, 85},
            {70, 88, 92},
            {60, 75, 80}
        };

        for (int i = 0; i < scores.length; i++) {
            for (int j = 0; j < scores[i].length; j++) {
                System.out.printf("%4d", scores[i][j]); // 4桁幅で整形
            }
            System.out.println();
        }
    }
}

出力結果

  80  90  85
  70  88  92
  60  75  80

数値が桁そろえされて、非常に見やすくなります。
「0埋め」をしたい場合は %04d と指定すると
ゼロパディングが可能
です。

0埋めについてはこちらの記事も参考になります。


代替手法との比較

2次元配列の表示はループが基本ですが、
実際には ストリームAPI を利用して書く方法もあります。

サンプルコード(Stream API利用例)

import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        int[][] scores = {
            {80, 90, 85},
            {70, 88, 92},
            {60, 75, 80}
        };

        Arrays.stream(scores)
              .map(Arrays::toString)
              .forEach(System.out::println);
    }
}

出力結果

[80, 90, 85]
[70, 88, 92]
[60, 75, 80]

コードがスッキリ書けるのが利点ですが、
経験の浅い方には少し読みづらいかもしれません。


初心者が間違えやすいポイント

2次元配列の表示でよくある間違いを整理しておきます。

  1. Arrays.toString() を使ってしまう
    → 2次元配列では正しく展開されず、メモリのアドレスのような文字列が出てきます。
    正しくは Arrays.deepToString() を使うこと。
  2. 改行を忘れる
    → 二重ループで行ごとに改行を入れないと、全部横並びになってしまいます。
  3. 桁の整形をしない
    → 大きな数字が混ざると表示が崩れて見づらくなります。
    printf で整形するのがおすすめです。

まとめ

  • 2次元配列は二重ループで表示するのが基本
  • デバッグ目的なら Arrays.deepToString() が便利
  • 実務では String.formatprintf で整形すると見やすい
  • Stream API を使えば簡潔に書けるが、読みやすさとのバランスが大事

2次元配列の表示は学習段階から頻繁に出てくるテーマです。
最初は二重ループで慣れてから、
用途に応じて他の方法を使い分けると良いでしょう。

あわせて参考になりそうな記事はこちらです:

どなたかのお役に立てば幸いです。
それではまたー!