gpt4 book ai didi

Java如何填充二维数组

转载 作者:行者123 更新时间:2023-12-02 03:44:21 25 4
gpt4 key购买 nike

例如,这就是我要问的:如何转换它:

{{0, 1, 2},
{3, 4, 5},
{6, 7, 8},
{9, 0, 1}}

对此:

{{0, 1, 2},
{0, 1, 2},
{0, 1, 2},
{0, 1, 2}}

这是我到目前为止所拥有的:

void fillDown(int[][] grid) {
int[][] m = {{}};
int[][] newArray = zero(m);
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[0].length; j++) {
if(j== m.length-1){
print(newArray[i][j]);
}else{
print(newArray[i][j] + " ");
}
}
}
}


int[][] zero(int[][] m) {
int rows = m.length;
int columns = m[0].length;
int[][] tempArray = new int[rows][columns];

for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
tempArray[i][j] = m[i][j];
}
}
return tempArray;
}

但是,当我输入一些值时,它没有按预期工作

例如,当我输入如下内容时:

{{0, 1, 2},
{3, 4, 5},
{6, 7, 8},
{9, 0, 1}}

它仍然会返回我输入的内容:

{{0, 1, 2},
{3, 4, 5},
{6, 7, 8},
{9, 0, 1}}

我该怎么做?

最佳答案

使用嵌套循环。

static void fillDown(int[][] grid) {
for (int i = 1 ; i < grid.length ; i++){
for (int j = 0 ; j < grid[i].length ; j++) {
grid[i][j] = grid[0][j];
}
}
}
<小时/>

或者复制原始数组。

static void fillDown(int[][] grid) {
for (int i = 1 ; i < grid.length ; i++){
grid[i] = Arrays.copyOf(grid[0], grid[0].length);
}
}
<小时/>

我不会使用以下方法,因为它只是复制引用,因此对其中一个索引所做的每一项更改都会影响所有其他索引。

for (int i = 1 ; i < grid.length ; i++) {
grid[i] = grid[0]; // /!\ NOT A GOOD IDEA
}

关于Java如何填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36463180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com