如何实现containsAll方法

时间:2016-05-13 04:10:13

标签: java methods

我正在尝试实现containsAll方法,但我不明白为什么它会返回错误的结果。求你帮帮我。

public boolean contains(Object o) {
    for (int ob = 0; ob < size; ob++) {
        if (o == obj[ob])
            return true;
    }
    return false;
}



public boolean containsAll(MyList c) {
    for (int ob = 0; ob < size; ob++) {
        c.toArray();
        if (c.contains(obj[ob]))

        {
            return true;
        }
    }

    return false;
}

1 个答案:

答案 0 :(得分:1)

返回错误的结果,因为在找到第一个匹配元素后返回true。逻辑应该是:

for (int ob = 0; ob < size; ob++) {
    /* ... */
    if (!c.contains(obj[ob])) {
        return false;
    }
}

return true;

即。找到第一个不匹配的元素后返回false,并在检查完所有元素后返回true

另请注意,使用==,您正在执行严格的身份比较。如果这不是您所追求的,请考虑改为使用equals()