【问题标题】:How to Copy two-dimensionals arrays without knowledge about their size [duplicate]如何在不知道其大小的情况下复制二维数组[重复]
【发布时间】:2019-04-14 01:39:42
【问题描述】:

我想复制一个数组,但我不知道它的大小。我在下面粘贴了类和方法。

public MyClass {

private int map[][];

public void setMap(int[][] map){

 //my code here

    }
}

当然,这种方式行不通。因为(正如我所说)我不知道大小。

int map[][] = new int[N][N];
for (int[] i : map)
for (int j : i)
i[j] = 1;

【问题讨论】:

  • 你可能不知道,但array.length 知道。使用经典的for(int i=0;i<arr.length;i++)

标签: java


【解决方案1】:

您可以使用.length() 函数查找数组和列中的行数。然后,您可以通过执行以下操作来初始化具有相同行数和列数的二维数组:

//array.length() is the number of rows. 
//array[0].length() takes the first row and gives you the number of columns.
int map[][] = new int[array.length][array[0].length];

现在,要复制名为 array 的数组,您可以执行以下操作:

for (int i = 0; i < array.length(); i++){
    for(int j = 0; j < array.length(); j++){
        map[i][j] = array[i][j];
    }
}

这就是您将二维数组array 复制到新数组map 中的方式。希望这会有所帮助!

【讨论】:

  • 你这行代码根本没有复制数组
  • 我不确定行数和列数是否相等。
  • 我已经改了。现在它将数组array复制到二维数组map中。
  • 列数与行数不同。
  • 那么,由于每一行都有相同的列数,你可以说array[0].length()来获取列数,因为array[0]会给你一个数组,第一行。然后,array[0].length 会给你列数!现在应该可以工作了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2016-10-13
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多