Java HashTable クラスの hashCode() 実装を次に示します。ハッシュテーブルの要素数が膨大で、ハッシュコードが INTEGER MAX LIMIT -2,147,483,648 から 2,147,483,647 を超える場合はどうなりますか? hashCodes は正の整数になると思います。
public synchronized int hashCode() {
int h = 0;
if (count == 0 || loadFactor < 0)
return h; // Returns zero
loadFactor = -loadFactor; // Mark hashCode computation in progress
Entry[] tab = table;
for (int i = 0; i < tab.length; i++)
for (Entry e = tab[i]; e != null; e = e.next)
h += e.key.hashCode() ^ e.value.hashCode();
loadFactor = -loadFactor; // Mark hashCode computation complete
return h;
}