这个问题在这里已经有答案了:
对于每个循环java错误arrayindexoutofboundsexception(6个答案)
上个月关门了。
我正在尝试将包含int数据类型的数组转换为包含布尔数据类型的数组。我的方法必须能够检查数字是偶数还是非偶数,然后将其存储为“真”如果偶数或其他“假”。返回类型必须是布尔数组。我该怎么做?我写的代码显然不起作用,我真的不明白为什么。实际上,我得到的错误是arrayindexoutofboundsexception:索引12超出长度6的界限(我原来的数组确实有6个元素)。有人能告诉我为什么吗?我正在使用Java8。
public static boolean[] evenNumbers ( int[] array){
boolean[] array1= new boolean[array.length];
for (int i: array) {
if(array[i]%2==0){
array5[i]=true;
}
}
return array5;
}
非常感谢你!
4条答案
按热度按时间5cg8jx4n1#
在你的循环中,
i
是元素的值,而不是它的索引,因此可能不是有效的索引。将foreach循环更改为常规循环
for
回路:fzsnzjdm2#
有人能告诉我为什么吗?
在for循环中
你用的不是索引,而是元素。
改用传统的for,因为foreach意在隐藏迭代器。
4ioopgfo3#
这个
i
在代码中不是索引,而是值。你可以用传统的for
循环而不是增强for
循环解决此问题。输出:
请注意,您的代码中有一个拼写错误。你已经写好了
array5
而不是array1
.vq8itlhq4#
基于流的解决方案(尽管
Boolean[]
)可能是:输出: