[Java]全要素の初期値が0の固定長多次元配列を動的に生成してみる
前提の確認
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が表示されてしまいます。
Author And Source
この問題について([Java]全要素の初期値が0の固定長多次元配列を動的に生成してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/ruteshi_SI_shiteru/items/ccff3ba193560de75a08著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .