在子阵列上超出界限

时间:2015-12-01 06:55:15

标签: java arrays loops multidimensional-array cell

在使用for循环而不使用数组类的情况下使用正确的逻辑有点丢失。

Cell[][] subArray = new Cell[10][78];
Cell[][] padded = makePaddedArray(message);
for (int i = 0; i < subArray.length; i++) {
    for (int j = animationPattern; j < subArray[i].length + animationPattern; j++) {
        subArray[i][j - animationPattern] = padded[i][j]; // out of bounds exception here -- column length?
    }
}

animationPattern大部分Integer等于1,填充数组的尺寸为[10] []。细胞也只是一个物体。

老实说,我正在寻找一些关于如何在这里制作子阵列的澄清以及我收到的越界异常背后的基础。

编辑:makePaddedArray返回尺寸为[10] [x]的2D单元格数组,其中x大于或等于165.

1 个答案:

答案 0 :(得分:0)

尝试更改此内容:

for (int i = 0; i < subArray.length; i++) {

为此:

for (int i = 0; i < subArray.length-1; i++) {

当你从0开始,而不是从1开始时,你需要将数组的末尾降低1。