我正在创建大量的Integer [] []数组,并且需要使用Integers而不是int,因为我之后将它们存储在ArrayList中。我试图以这种格式访问索引时遇到错误,如果只是使用int [] []数组,我通常不会得到这些索引。这是我正在使用的代码:
Integer[][] vector_xi = new Integer[NUM_ROWS][NUM_COLS];
vector_xi[x][y] = vector_xi[x][y] + 1; \\I need to increment values in the table when events occur
编译器不喜欢上面的代码行,所以我尝试初始化值:
for (int j = 0; i < NUM_ROWS; i++) {
for (int k = 0; k < NUM_COLS; j++) {
vector_xi[j][k] = 0;
}
}
虽然它也不会让我这样做。似乎只是试图访问我创建的Integer [] []数组的索引会使其崩溃。这与Integer对象有关吗?我怎么能绕过这个?谢谢你的帮助!
答案 0 :(得分:0)
需要使用Integers而不是int,因为我之后将它们存储在ArrayList中。
int
将自动装箱放入Integer
s,所以这不应成为问题。只需使用int[][]
:
int[][] vector_xi = new int[NUM_ROWS][NUM_COLS];
此外,你的for-loop变量看起来很可疑(你还没有声明i
而你永远不会增加k
)。它应该看起来像这样:
for (int j = 0; j < NUM_ROWS; j++) {
for (int k = 0; k < NUM_COLS; k++) {
vector_xi[j][k] = 0;
}
}