繁体   English   中英

计算数组的元素

[英]counting the elements of array

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

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

    }

我用上面的代码。 但是我在行上收到ArrayIndexoutofBound异常

如果(array1 [a]!= null)

这是为什么? 有人可以指出吗。

更换

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

通过

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

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

在此处输入图片说明

当然,这是因为您要比数组的长度多进行一次迭代。

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

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

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

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

更改

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

进入

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

没有元素array1[array1.length]

如果数组的大小为5意味着索引从04 ,换句话说,第一个元素的索引为0 ,最后一个元素的索引为4

在您的“ for”循环中,应为“ a <=”而不是“ i”

在for循环中将<=切换为<

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM