java hashcode是什么,讓我們一起了解一下?
hashCode就是對象的散列碼,是根據對象的某些信息推導出的一個整數值,默認情況下表示是對象的存儲地址。通過散列碼,可以提高檢索的效率,主要用于在散列存儲結構中快速確定對象的存儲地址,如Hashtable、hashMap中。
hashcode的作用是什么?
1、hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用來在散列存儲結構中確定對象的存儲地址的;
2、如果兩個對象相同,就是適用于equals(java.lang.Object) 方法,那么這兩個對象的hashCode一定要相同;
3、如果對象的equals方法被重寫,那么對象的hashCode也盡量重寫,并且產生hashCode使用的對象,一定要和equals方法中使用的一致,否則就會違反上面提到的第2點;
4、兩個對象的hashCode相同,并不一定表示兩個對象就相同,也就是不一定適用于equals(java.lang.Object) 方法,只能夠說明這兩個對象在散列存儲結構中,如Hashtable,他們“存放在同一個籃子里”。
具體的示例如下:
public?class?HashTest?{ private?int?i; ? public?int?getI()?{ return?i; } ? public?void?setI(int?i)?{ this.i?=?i; } ? public?int?hashCode()?{ return?i?%?10; } ? public?final?static?void?main(String[]?args)?{ HashTest?a?=?new?HashTest(); HashTest?b?=?new?HashTest(); a.setI(1); b.setI(1); Set?set?=?new?HashSet(); set.add(a); set.add(b); System.out.println(a.hashCode()?==?b.hashCode()); System.out.println(a.equals(b)); System.out.println(set); } }
以上就是小編今天的分享了,希望可以幫助到大家。