LoginSignup
1
3

More than 5 years have passed since last update.

[Java]全要素の初期値が0の固定長多次元配列を動的に生成してみる

Last updated at Posted at 2015-10-20

前提の確認

Javaでプリミティブ型の配列を宣言する際に、初期値をセットしなければ、自動的に全要素の初期値が0になることは衆知の事実です。今まで毎回0代入をループ回していた自分はかなりのうましか慎重派でしたね。

実演してみる

今回はそれに加えて要素数をint型の変数で設定していくサンプルをお見せします。

コード例

public class Test {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        int x = 20;
        int y = 6;

        int[][] n = new int[y][x];

        //配列を表示する
        for (int[] s : n) {

            //一行ずつカンマ区切りの文字列を生成していく
            StringBuilder sb = new StringBuilder();
            for (int i : s) {
                sb.append(i + ", ");
            }
            System.out.println(sb);
        }
    }

}

結果

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 

解説

まず、最初の二行で要素数を設定します。今回は$x=20\ , y=6$としました。
次に、int[][] n = new int[y][x];として二次元配列nを宣言しておりますが、
ここで注意していただきたいのは、要素数を行→列(この例で言うならばy→x)と並べないと直感的な結果にはなりにくいということです。

詳しくは割愛しますが、もしint[x][y]としてしまうと、この例であれば表示の際に縦に20、横に6個の0が表示されてしまいます。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3