0

我正在使用这样的数组:

int selIntIndex = Integer.valueOf(selStringIndex);

        int[][] PreIntVal = new int[][]


                {
                 { selIntIndex,
                        2 },
                 {
                        selIntIndex,
                        3 },
                 {
                        selIntIndex,
                        1 } };

        PreIntVal[3][0] = PreIntVal[4][0] = 3;

        android.util.Log.d("StripedLog",
                Arrays.toString(Values.PreStringVal[3]));

但不知何故,代码永远不会到达“日志”语句。问题在于这一行: PreIntVal[3][0] = PreIntVal[4][0] = 3; 因为如果我将其注释掉,它就会起作用。

有什么建议么?

4

1 回答 1

3

此特定行PreIntVal[3][0] = PreIntVal[4][0]导致ArrayIndexOutOfBoundsException。查看定义数组的维度:new int[][] { { selIntIndex, 2 }, { selIntIndex, 3 }, { selIntIndex, 1 } };。您似乎对如何使用索引访问数组元素感到困惑,请阅读Oracle 教程

该数组的有效索引是[0,1,2][0,1]

观察此图以了解索引是如何映射的。

在此处输入图像描述

于 2013-07-20T05:32:32.847 回答