每个实现了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()方法。