我正在使用这样的数组:
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]。
观察此图可了解如何映射索引。