我正在使用这样的数组:

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]));


但是以某种方式,代码永远不会到达“ log”语句。问题出在这一行:PreIntVal [3] [0] = PreIntVal [4] [0] = 3;因为如果我将其注释掉,它将起作用。

有什么建议?

最佳答案

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

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

观察此图可了解如何映射索引。

10-04 23:04