初探Collection接口中contains()方法的底层

每个实现了Collection的类都会重写contains()方法

初探Collection接口中contains()方法的底层

接着我们去看contains()在ArrayList类中如何实现

public boolean contains(Object o) {
        return indexOf(o) >= 0;
    }

 public int indexOf(Object o) {
        if (o == null) {
            for (int i = 0; i < size; i++)
                if (elementData[i]==null)
                    return i;
        } else {
            for (int i = 0; i < size; i++)
                if (o.equals(elementData[i]))
                    return i;
        }
        return -1;
    }

通过观察源码,发现contains()方法的底层依赖的是equals()方法。