Me pregunto por qué el Hashtable evita el uso de hashcode negativo?Hashtable Hashtable evitar el hashcode negativo
int hash = key.hashCode();
int index = (hash & 0x7FFFFFFF) % tab.length;
Dónde (hash & 0x7FFFFFFF)
hace que el bit de signo que se va a 0 positivo, pero ¿por qué nosotros no pudimos tratar el entero de 32 bits sin signo como? o incluso utilizar los trucos modulares para que sea positivo. Por ejemplo,
public static long int_mod(int hashcode, int tab_length){
return (hashcode % tab_length + tab_length) % tab_length;
}
Creo que este método es simple y funciona. Y probablemente esa es la razón por la que se usó. '(hash & 0x7FFFFFFF)' estrecho a positivo, '% tab.length' estrecho al tamaño de pestaña. Simple limpio y fácil. –
¿A qué método se refiere? la implementación original? – peter
Sí. El ya implementado. –