我正在编写一个代码,该代码通过一个名为values的给定数组列表查看并返回True如果发现我已经将它用于for循环和while循环但是无法弄清楚如何获取for-each循环工作。这就是我给你的错误。
编辑:错误显示“java.lang.IndexOutOfBoundsException:索引:642327,大小30590(在java.util.ArrayList中)
public String twoforEachFoundIt(ArrayList<Integer> values, int number){
for(int i:values) {
if (values.get(i)== number){
return "True";
}
}
return null;
}
答案 0 :(得分:1)
由于foreach
正在迭代ArrayList values
的元素,您必须将number
与实际元素进行比较:
for (int i : values) {
if (i == number){
return "True";
}
}
如果要使用索引,请使用简单的for
:
for(int i = 0; i < values.size(); i++) {
if (values.get(i) == number){
return "True";
}
}
答案 1 :(得分:0)
foraech
为您提供数组values
的内容,而不是索引。您可以简单地比较:
if (i == number){
return "True";
}
答案 2 :(得分:0)
变量'i'具有元素的值而不是索引。正确的方法是:
if ( i== number)
return "true"
答案 3 :(得分:0)
当您在列表上进行迭代时,您会将列表的内容放入i
。然后,您将i
用作索引添加到列表中。
您可以直接比较i
:
if (i == number)
return "True";
作为备注,您可能希望更改功能以返回boolean
而不是String
...