Android中的矩阵初始化?

时间:2011-08-01 13:40:00

标签: android matrix initialization

我想在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;

...等

我的错误在哪里?

3 个答案:

答案 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;

            }
}