В настоящее время я изучил исходный код JSE для развлечения. Из некоторых руководств я нашел принцип two equals objects (i.e. as to object a and b a.equals(b) returns true) must have the same hashcode, on the other hand, two objects with the same hashcode are not necessarily equals
. Согласно исходному коду HashTable Java API (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Hashtable.java), например. обратитесь к строке 254, мы можем почти вывести equals => same hashcode
, но я до сих пор не могу полностью понять, почему two objects with the same hashcode are not necessarily equals
. Кто-нибудь может привести больше аргументов по этому поводу? заранее спасибо
Примечание! Этот вопрос больше интересует, почему два объекта с одинаковым хеш-кодом не обязательно равны
String
(например), больше, чем возможныхint
. В конце концов у вас закончатся уникальные хеш-коды, даже с идеальным алгоритмом хеширования. - person resueman   schedule 12.10.2016