@ Барт прав, но я хотел показать вам, как вы можете узнать это из исходного кода Hashtable
. Источник доступен здесь . Ищите hash(
, и вы найдете эту функцию:
119 public int getKeyHash() {
120 return key.hashCode();
121 }
Если мы посмотрим на несколько строк вверх, мы обнаружим, что key
- это любое Object
:
89 private static class Entry<K, V> extends MapEntry<K, V> {
90 Entry<K, V> next;
Затем мы рассмотрим случайный класс, такой как String
, и обнаружим, что у него есть метод hashCode()
. Затем мы также смотрим на класс Object
, чтобы найти его также имеет метод hashCode()
. Поэтому любой объект (поскольку все они наследуются от Object
) имеет метод hashCode()
.
Из любопытства мы посмотрим на источник для Object
и найдем это:
33 public int hashCode() {
34 return VMMemoryManager.getIdentityHashCode(this);
35 }
Бинго!