计算数组的元素

时间:2014-01-29 07:51:30

标签: java arrays

我有一个也有null元素的数组。我想跟踪其中包含内容的元素数量。

      int counter = 0;
    for (int a = 0; i <=array1.length; a ++){
        if (array1[a] != null)
            counter ++;

    }

我使用了上面的代码。但是我在第

行获得了ArrayIndexoutofBound异常
  

if(array1 [a]!= null)

为什么?有人可以指出它。

6 个答案:

答案 0 :(得分:3)

替换

for (int a = 0; i <=array1.length; a ++){

通过

for (int a = 0; i <array1.length; a++){

您的代码在元素array1[array1.length]上失败,因为索引必须介于0array1.length - 1之间。

enter image description here

答案 1 :(得分:2)

当然这是因为你正在迭代一次,而不是数组的长度。

如果数组的长度为3.您的数组存储array[0]array[1]array[2]等元素。

数组的索引或任何列表Map Set从0开始。

使用for(int a = 0; a < array1.length;a++)

答案 2 :(得分:2)

array1.length是数组的大小,但由于索引是从0开始的,因此只能转到array1.length-1。因此,要么将a <= array1.length更改为a <= array1.length - 1,要么将其更改为更常见的a < array1.length

答案 3 :(得分:2)

更改

 for (int a = 0; i <=array1.length; a ++){

进入

for (int a = 0; i <array1.length; a ++){

没有元素array1[array1.length]

如果你有5数组的大小意味着你有04的索引,那么第一个元素的索引是0,索引是最后一个元素是4

答案 4 :(得分:1)

在“for”循环中,它应该是“a&lt; =”而不是“i”

答案 5 :(得分:1)

switch&lt; = to&lt;在你的for循环中