在java中运行for each循环时出现ArrayOutOfBounds错误
我正在编写一个代码,它查看一个名为values的给定数组列表,如果发现它可以用于for循环和while循环,则返回True,但不知道如何使for-each循环工作。这是我的东西,它会给我错误 编辑:错误为“java.lang.IndexOutOfBoundsException:索引:642327,大小30590(在java.util.ArrayList中)在java中运行for each循环时出现ArrayOutOfBounds错误,java,arraylist,Java,Arraylist,我正在编写一个代码,它查看一个名为values的给定数组列表,如果发现它可以用于for循环和while循环,则返回True,但不知道如何使for-each循环工作。这是我的东西,它会给我错误 编辑:错误为“java.lang.IndexOutOfBoundsException:索引:642327,大小30590(在java.util.ArrayList中) 公共字符串twoforEachFoundIt(ArrayList值,整数){ for(int i:值){ if(value.get(i)=数
公共字符串twoforEachFoundIt(ArrayList值,整数){
for(int i:值){
if(value.get(i)=数字){
返回“真”;
}
}
返回null;
}
foreach提供数组值的内容,而不是索引。您可以简单地比较:
if (i == number){
return "True";
}
变量“i”具有元素的值,而不是索引。正确的方法是:
if ( i== number)
return "true"
由于foreach
正在迭代ArrayList值的元素
,因此必须将number
与实际元素进行比较:
for (int i : values) {
if (i == number){
return "True";
}
}
如果要使用索引,请对
使用简单的:
for(int i = 0; i < values.size(); i++) {
if (values.get(i) == number){
return "True";
}
}
for(int i=0;i
当您在列表上迭代时,您将列表的内容放入i
。然后您将该i
用作索引
您可以直接比较i
:
if (i == number)
return "True";
请注意,您可能希望更改函数以返回一个布尔值
,而不是一个字符串
。谢谢。我们并没有在课堂上对每一个函数进行真正的检查,我无法理解我在网上找到的任何解释。谢谢。我已经用for循环和while循环完成了。我正试图用所有的thr来完成它ee类型的循环。感谢你的否决票。这让我感到非常受欢迎。我对编程不熟悉,我也尝试过自己查找资料,但由于我是新手,我发现所有的资料对我来说都没有意义。但感谢帮助回答我问题的人。:)
if (i == number)
return "True";