[英]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]
上失败,因为索引必须在0
到array1.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
意味着索引从0
到4
,换句话说,第一个元素的索引为0
,最后一个元素的索引为4
在您的“ for”循环中,应为“ a <=”而不是“ i”
在for循环中将<=切换为<
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.