如何为null对象计算哈希码

Siv*_*lam 4 java

由于HashMap和HashSet允许空对象,这些'null'对象的哈希值是什么?如何在java中计算/处理?

Aff*_*ffe 6

内置于openJDK中的HashMap只是将空引用放入其用于保存条目的数组中的第一个存储桶中

409     private V putForNullKey(V value) {
410         for (Entry<K,V> e = table[0]; e != null; e = e.next) {
411             if (e.key == null) {
412                 V oldValue = e.value;
413                 e.value = value;
414                 e.recordAccess(this);
415                 return oldValue;
416             }
417         }
418         modCount++;
419         addEntry(0, null, value, 0);
420         return null;
421     }
Run Code Online (Sandbox Code Playgroud)