ArrayList的contains方法判断两个元素是否为同一元素的标准是该元素(姑且当做Object)的equals方法。下面的例子可以说明问题。
public static void main(String[] args) {
String str1 = new String("sangyaohui");
String str2 = new String("sangyaohui");
System.out.println("str1 == str2");
if (str1 == str2) {
System.out.println("通过");
} else {
System.out.println("没通过");
}
System.out.println();
System.out.println("str1.equals(str2)");
if (str1.equals(str2)) {
System.out.println("通过");
} else {
System.out.println("没通过");
}
System.out.println();
ArrayList<String> list = new ArrayList<String>();
list.add(str1);
if (list.contains(str1)) {
System.out.println("list contains str1)");
}
if (list.contains(str2)) {
System.out.println("list contains str2)");
}
}
输出:
str1 == str2
没通过
str1.equals(str2)
通过
list contains str1
list contains str2