String的hashcode
很多人說自己看過java原始碼,估計這個是個盲點,知道了感覺確實用處不大,不過見還真有人問,這裡就簡述一下。他的主要演算法就是
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
程式碼並不難,用數學公式推導一下就是:
hashcode = s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1];
相關文章
- String的equals和hashCode方法
- Java原始碼之String的HashCode方法Java原始碼
- 轉:Java String中的HashCode和EqualJava
- String中hashCode方法的執行緒安全執行緒
- Hashcode的作用
- java中的hashCodeJava
- javascript的hashCode實現JavaScript
- 講講HashCode的作用
- equals & hashCode
- equals()和hashCode()的區別
- equals&hashCode
- hashcode重寫
- hashCode()與equals()
- Java hashCode() 指南Java
- hashcode詳解
- 覆寫hashCode
- “==”、“equals()”、“hashcode()”之間的祕密
- Hashcode相同但是equals不同的例子
- ==、equals、hashcode總結
- Java Object 之hashCodeJavaObject
- Object類-equals()、==、hashCode()Object
- [Java基礎]HashcodeJava
- 面試官愛問的equals與hashCode面試
- Java 基礎:解析 hashCodeJava
- 重新實現hashCode()方法
- String a = "abc" 與String b = new String("abc")的區別
- hashCode()和equals()的區別?(skycto JEEditor)
- 關於重寫equals()和hashCode()的思考
- 如何正確實現 Java 中的 HashCodeJava
- 一個最好的詮釋hashcode的作用的例子
- String s = “hello“和String s = new String(“hello“)的區別
- 搞懂 Java equals 和 hashCode 方法Java
- Java hashCode() 方法深入理解Java
- java~重寫hashcode和equalsJava
- equals與hashCode關係梳理
- Java基礎- ==和equals和hashCode的區別Java
- 如何正確實現Java中的hashCode方法Java
- String str=null; 和String str=""的區別Null