如何在Java Android中将二维数组的一个索引复制到另一个索引?

3

我想将一个二维数组中某个索引的数据复制到同一数组中的另一个索引位置。

我的代码:

for (int f=0; f<(wp[donsay-1].length); f++) {
  wp[donsay][f] = wp[donsay - 1][f];
}

使用这段代码,我正在拼命地尝试将先前的索引复制到下一个索引。donsay=1wp[0][n]...已手动填充。
这会导致以下错误:
Shutting down VM
12-27 04:37:04.610 26200-26200/chessactivesekizsatirvetekliarray.com.sekizsatirvetekliarray E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                                              Process: chessactivesekizsatirvetekliarray.com.sekizsatirvetekliarray, PID: 26200
                                                                                                              java.lang.RuntimeException: Unable to start activity ComponentInfo{chessactivesekizsatirvetekliarray.com.sekizsatirvetekliarray/chessactivesekizsatirvetekliarray.com.sekizsatirvetekliarray.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

任何帮助都将不胜感激。
1个回答

2
ArrayIndexOutOfBoundsException 表示您正在尝试访问不存在的数组索引。请通过在调试模式下逐步执行代码来检查您是否可以访问诸如 wp[donsay-1]wp[donsay][f]wp[donsay - 1][f] 等内容。
此外,我不确定如何使用 for 循环遍历二维数组,因为您实际上需要一个嵌套的 for 循环来遍历整个数组。

如果我有一个ArrayList并尝试将前一个索引复制到下一个索引,那该怎么办?因为很明显这不能用于数组...有什么帮助吗? - Aziz S. Kural
如果 donsay 像你说的那样是 1,那么为什么以下代码没有问题:`Integer[][] wp = new Integer[100][100]; int donsay = 1;for (int f=0; f<(wp[donsay-1].length); f++) { wp[donsay][f] = wp[donsay - 1][f]; }`另外,为什么不使用 System.arraycopy(wp[donsay - 1], 0, wp[donsay], 0, wp[donsay - 1].length); 而不是手动数组复制? - user4255955

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接