在这个方法中,我试图找到一个第一个偶数整数ArrayList(供进一步使用).
但是,当我调用方法时,我得到-1.据我所知,这意味着列表中没有整数(但确实存在).
这是代码:
public static int rangeBetweenEvens(ArrayList<Integer> list) {
int firstEven = 0;
for (int i = 0; i < list.size(); i++)
{
firstEven = list.indexOf((i) % 2 == 0);
}
return firstEven;
}
Run Code Online (Sandbox Code Playgroud)
您试图找到第一次出现(i) % 2 == 0,但是,这不是您认为的那样.此表达式被计算为布尔表达式 - true如果i是偶数,false如果它是奇数.在第一次迭代中,i是0(偶数),但true在列表中找不到,因为整数存在于那里,所以你返回的结果为indexOf- -1.
使用indexOf在这里是一个错误,因为它会在列表中搜索特定值.相反,用于get(i)检索当前值,并测试它以查看它是否均匀.如果是,则返回当前索引,否则继续搜索.-1如果找不到则返回.
| 归档时间: |
|
| 查看次数: |
519 次 |
| 最近记录: |