Red de conocimiento informático - Aprendizaje de programación - Problema de código hash() de Java

Problema de código hash() de Java

1) público booleano igual (Objeto obj) // significa que el método igual debe pasar un parámetro de tipo Objeto,

//nombre obj aquí

{

if(name.equals(obj.name) && age==obj.age)// Esto debería ser un error,

// Porque obj no tiene atributos de nombre ni edad

// Agregar if(obj instanciade MyKey){ }

{

}

return true

}

else

{

devuelve falso

}

}

2) public int hashCode; ()

{

devuelve nombre.<

}

El hashCode() original en Objeto devuelve el valor en la dirección de memoria. , porque String anula este método

por lo que hashCode() de String devuelve el código hash de esta cadena. El código hash de un objeto String se calcula según la siguiente fórmula:

s[0]* 31^(n-1) + s[1]*31^(n-2) + .. .+ s[ n-1], usando el algoritmo int, donde s[i] es el i-ésimo carácter de la cadena,

n es la longitud de la cadena y ^ representa la potencia. (El valor hash de la cadena vacía es 0.)

Es decir, devolverá un valor de tipo int, y en su método, solo necesita agregar una edad después del valor int

.