equals()方法是根類Object中的一個方法,子類可以根據需要重寫該方法(比如:String類)。
一、Object類中的equals()方法實現如下:
1 public boolean equals(Object obj) {2 return (this == obj);3 }例子:

1 package com.mianshi.easy; 2 3 class A{} 4 5 public class Equals { 6 7 public static void main(String[] args) { 8 A a1 = new A(); 9 A a2 = new A();10 A a3 = a2;11 System.out.PRintln(a1.equals(a2));12 System.out.println(a3.equals(a2));13 }14 }15 16 結果:17 false18 trueView Code類A默認繼承自Object類,所以具有父類中的public修飾的的equals()方法,并且功能相同。
該方法實現的功能是比較兩個對象是否是同一個對象,是同一個對象回true,否則,返回false。equals()比較的是obj存放的對象的地址值,這一點跟“==”一樣。
二、String類的中的equals()方法實現如下:
1 public boolean equals(Object anObject) { 2 if (this == anObject) { //先比較兩個對象是否為同一個對象 3 return true; 4 } 5 if (anObject instanceof String) { 6 String anotherString = (String)anObject; 7 int n = value.length; 8 if (n == anotherString.value.length) { //比較兩個對象的值是否相同,值相同equals()返回true 9 char v1[] = value;10 char v2[] = anotherString.value;11 int i = 0;12 while (n-- != 0) {13 if (v1[i] != v2[i])14 return false;15 i++;16 }17 return true;18 }19 }20 return false;21 }例子:

1 package com.mianshi.easy; 2 3 public class Equals { 4 5 public static void main(String[] args) { 6 String a1 = new String("Hello"); 7 String a2 = new String("Hello"); 8 String a3 = "Hello"; 9 //a1和a2明顯不是一個對象,但是equals()返回true10 System.out.println(a1.equals(a2));11 //a1和a3不是同一個對象,equals()返回true12 System.out.println(a3.equals(a1));13 }14 }15 16 結果:17 true18 trueView Code說明String類里面重寫了父類Object類的equals()方法,重寫后比較的是兩個String對象的內容是否相同,相同則為true。
新聞熱點
疑難解答