如何在ArrayList <Integer>中找到第一个偶数整数?

Kas*_*ras 0 java arraylist

在这个方法中,我试图找到一个第一个偶数整数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)

rge*_*man 6

您试图找到第一次出现(i) % 2 == 0,但是,这不是您认为的那样.此表达式被计算为布尔表达式 - true如果i是偶数,false如果它是奇数.在第一次迭代中,i是0(偶数),但true在列表中找不到,因为整数存在于那里,所以你返回的结果为indexOf- -1.

使用indexOf在这里是一个错误,因为它会在列表中搜索特定值.相反,用于get(i)检索当前值,并测试它以查看它是否均匀.如果是,则返回当前索引,否则继续搜索.-1如果找不到则返回.