我想在android中进行简单的矩阵初始化,我得到错误:java.lang.ArrayIndexOutOfBoundsException
。我正在尝试这个:
Integer id = Integer.valueOf(idcateg);
System.out.println("Id-ul e"+id);
vot = new Integer[sirid.length][id];
for (int i = 0; i < sirid.length; i++) {
vot[i][id] = 0;
}
where id is a value between 1 and 5,sirid.length is a number that reflects number of images from different categorys. For example,I want for category 1 to have something like this :
vot[0][1]=0;
vot[1][1]=0;
vot[2][1]=0;
...等
我的错误在哪里?
答案 0 :(得分:1)
试试这个
Integer id = Integer.valueOf(idcateg);
System.out.println("Id-ul e"+id);
vot = new Integer[sirid.length][id];
for (int i = 0; i < sirid.length; i++) {
vot[i][id-1] = 0;
}
数组索引从0开始
您可以通过id将投票数组的大小设置为sirid.lengh,但是数组起始索引值从0到(大小)(不包括大小值)请参阅for循环
答案 1 :(得分:0)
我认为因为你在id上初始化数组。 在那之后你打电话给投票[i] [id]然后总是1太高了。
f.e。
如果你创建新的int [3] [3]
你只能打电话给位置0,1和2
祝你好运答案 2 :(得分:0)
这是因为id
被认为是字符串的长度而你试图访问同一个元素......但最后一个元素是vat[i][id-1]
但是你试图获得vat[i][id]
}
所以更好地使用它..
for (int i = 0; i < sirid.length; i++) {
for(int j = 0; j<id ; j++){
vot[i][j] = 0;
}
}