从搜索数组的方法返回一个布尔值

时间:2018-04-30 07:26:05

标签: java arrays list for-loop boolean

有没有办法在扫描列表的for循环中满足条件时立即返回布尔值?

在做这些事情时,我一直在使用这种“旗帜”方法。

this引用的类是一个由多个Point个对象组成的对象。

如果true ArrayList中的任何一个Point对象等于传递给方法的Point pointsCovered,则此方法返回p(如果对象包含输入点,因此方法名称。)

boolean containsPoint(Point p) {

    boolean flag = false;

    for (int i = 0; i < this.length; i++)
    {
        if (pointsCovered.get(i).equals(p)) {
            flag = true;
            break;
        }
    }

    return flag;
}

通过搜索找不到类似的东西。

基本上我在问这是否有更好或更标准的方法。

编辑:为了澄清,我使用了这个flag变量,因为我不知道在for循环中返回一个语句会终止循环并立即返回该值。

干杯。

2 个答案:

答案 0 :(得分:4)

完全删除flag并尽快删除return

boolean containsPoint(Point p) {

    for (int i = 0; i < this.length; i++)
    {
        if (pointsCovered.get(i).equals(p)) {
            return true;
        }
    }

    return false;
}

答案 1 :(得分:4)

如果要检查整个集合,可以在一行中执行此操作:

boolean containsPoint(Point p) {
    return pointsCovered.contains(p);
}
相关问题