ArrayList的contains方法與Object的equals方法的關係

yoohoosome發表於2016-04-11

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



相關文章