В настоящее время я просверлил исходный код 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 API Java (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's (например), чем есть возможные' int '. В конце концов вы исчерпаете уникальные хэш-коды, даже с отличным алгоритмом хеширования. – resueman
у вас и вашего близнеца есть тот же день рождения, но разные люди .... –