java中hashCode和equals什麽關系,hashCode到底怎麽用的
Object類的hashCode的用法:(新手一定要忽略本節,否則會很慘) (視頻下載) (全部書籍)
馬
克-to-win:hashCode方法主要是Sun編寫的一些數據結構比如Hashtable的hash算法中用到。因為hash很快,所以你往
Hashtable裏放東西的時候,他先比一下,裏面有沒有現有的東西的hashCode和你一樣,如果都不一樣,證明是新的,就不再運行equals方
法了,直接放進Hashtable裏了,很快。如果放的時候,Hashtable裏面現有的某東西的hashCode和他一樣,他再運行一下
equals,如不一樣,則證明是新的,可以放入。equals也一樣,證明確實是一樣的,不讓放入Hashtable。另外,Object的hashCode方法(Sun公司編的)是返回對象的內部地址。equals原始方法判斷兩個Object是否a==b,內存地址是否等(
最後,補充一點,Sun公司Object的equals方法文檔上指明:for any
non-null reference values x and y, this method returns true if and only
if x and y refer to the same object (x == y has the value true).
Note that it is generally necessary to override the hashCode method
whenever this method is overridden,
例2.1.2.1(hashCode都不一樣)---本章源碼import java.util.*;
class CompanyMark_to_win {
private String name;
CompanyMark_to_win(String name) {
this.name = name;
}
。。。。。。。。。。。。。。。。。
詳情請進:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner3_web.html#hashCode
java中hashCode和equals什麽關系,hashCode到底怎麽用的