【问题标题】:how to copy an index of a 2 dimensional array to another index java android如何将二维数组的索引复制到另一个索引java android
【发布时间】:2015-12-27 04:50:25
【问题描述】:

我正在尝试将二维数组的索引复制到同一数组的另一个索引。

我的代码:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: java android arrays


    【解决方案1】:

    ArrayIndexOutOfBoundsException 表示您正在尝试访问不存在的数组索引。通过在调试模式下单步执行代码来检查您是否可以访问诸如 wp[donsay-1]wp[donsay][f]wp[donsay - 1][f] 之类的内容。

    我也不确定 for 循环是如何用于二维数组的,因为你本质上需要一个 for 循环中的 for 循环来遍历整个数组

    【讨论】:

    • 如果我有一个 ArrayList 并尝试将前一个索引复制到下一个索引会怎样。任何帮助...因为很明显这不适用于数组...
    • 如果donsay 像你说的那样是1,那么为什么下面的代码没有问题:Integer[][] wp = new Integer[100][100]; int donsay = 1; for (int f=0; f&lt;(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); 而不是手动复制数组?
    猜你喜欢
    • 2021-06-04
    • 2012-04-10
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多