Hashtableが負のハッシュコードの使用を避けるのはなぜですか?
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;
符号付きビットを 0 から正の値にするのはどこですか?(hash & 0x7FFFFFFF)
しかし、符号付き 32 ビット整数を unsigned として扱うことができないのはなぜですか? またはモジュラートリックを使用して、それをポジティブにします。例えば、
public static long int_mod(int hashcode, int tab_length){
return (hashcode % tab_length + tab_length) % tab_length;
}