contains方法
我们以以下这个例子分析ArrayList类contains方法;三段代码中的后面两小段代码分别是 contains 方法的源码和 contains 方法中 indexOf 方法的源码;
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Tom");
System.out.println(list.contains(null)); //1
System.out.println(list.contains("Tom")); //2
}
}
public boolean contains(Object o) {
return indexOf(o) >= 0; //3
}
public int indexOf(Object o) {
if (o == null) { //4
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++) //5
if (o.equals(elementData[i]))
return i;
}
return -1; //6