為什么在重寫(xiě) equals 方法的時(shí)候需要重寫(xiě) hashCode 方法?
因?yàn)橛袕?qiáng)制的規(guī)范指定需要同時(shí)重寫(xiě) hashcode 與 equals 是方法,許多容器類,如 HashMap、HashSet 都依賴于 hashcode 與 equals 的規(guī)定。
有沒(méi)有可能兩個(gè)不相等的對(duì)象有相同的 hashcode?
有可能,兩個(gè)不相等的對(duì)象可能會(huì)有相同的 hashcode 值,這就是為什么在 hashmap 中會(huì)有沖突。相等 hashcode 值的規(guī)定只是說(shuō)如果兩個(gè)對(duì)象相等,必須有相同的hashcode 值,但是沒(méi)有關(guān)于不相等對(duì)象的任何規(guī)定。
兩個(gè)相同的對(duì)象會(huì)有不同的 hash code 嗎?
不能,根據(jù) hash code 的規(guī)定,這是不可能的。