1. hashCode()方法
2. equals 方法
1.hashCode 方法是Object中的一個方法 ,String 類對其進行了重寫,主要是不斷的對前一個字符所產生的hash值進行累加。
public int hashCode() {
int h = hash;//String 類中的hash
if(h == 0 && value.length > 0) {// 判斷字符串長度是大於0的
char[] val = value;
for(int i=0; i < value.length; i++) {
h = 31 * h + char[i];
}
hash = h;
}
return h;
}
2.equals 方法
equals 方法是Object的一個方法,在String 類中對其進行了重寫,具體代碼如下。
public boolean equals(Object anObject){
if(this == anObject) {
return true;
}
if(anObject isInstanceOf String) {
String anString = (String)anObject;
int n = value.length;
if(n == anString.value.length) {
char[] strA = value;// 字符串是以char類型的數組存在的
char[] strB = anString.value;
int i = 0;
while(lengthA-- != 0) { // 由於String類中字符串是以char數組來存儲的,因此,比較數組中的每一個元素即可
if(strA[i] != strB[i]) {
return false;
}
i++;
}
return true;
}
return false;
}
}