Java | 多次元配列で部分的に埋める方法

Java Java
スポンサーリンク

JavaのArrays.fill一次元配列専用 なので、二次元以上の配列を扱うときは「行ごと」に処理します。
つまり、多次元配列の一部を埋めたいときは、対象の行を選んで Arrays.fill を使うのが基本です。

基本の考え方

int[][] grid = new int[3][4];   // 3行4列の二次元配列
Arrays.fill(grid[1], 7);        // 2行目(添え字1)の全要素を7に
Java

結果

[
 [0, 0, 0, 0],
 [7, 7, 7, 7],
 [0, 0, 0, 0]
]

部分的に埋める(範囲指定)

一次元配列と同じように、行を指定して範囲を埋められます。

int[][] grid = new int[3][5];   // 3行5列
Arrays.fill(grid[0], 1, 4, 9);  // 1行目の添え字1~3を9に
Java

結果

[
 [0, 9, 9, 9, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]
]

複数行をまとめて埋める

for文を使って、複数行に同じ処理を繰り返せます。

int[][] grid = new int[4][4];   // 4行4列
for (int i = 0; i < 2; i++) {   // 先頭2行だけ処理
    Arrays.fill(grid[i], 5);    // 各行を5で埋める
}
Java

結果

[
 [5, 5, 5, 5],
 [5, 5, 5, 5],
 [0, 0, 0, 0],
 [0, 0, 0, 0]
]

応用例:チェス盤風に初期化

int[][] board = new int[8][8];

// 偶数行は全部1、奇数行は全部2
for (int i = 0; i < board.length; i++) {
    if (i % 2 == 0) {
        Arrays.fill(board[i], 1);
    } else {
        Arrays.fill(board[i], 2);
    }
}
Java

出力イメージ

[1,1,1,1,1,1,1,1]
[2,2,2,2,2,2,2,2]
[1,1,1,1,1,1,1,1]
...

✅ まとめ

  • 多次元配列は「行ごと」に処理する
  • 部分的に埋めたいときは Arrays.fill(grid[row], start, end, value) を使う
  • 複数行ならfor文で繰り返す
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました