¿Cómo se calcula el valor de String Hashcode?

El método String hashCode() devuelve el valor del código hash de esta string como un entero.

Sintaxis:
public int hashCode()

Por ejemplo:

import java.io.*;
  
class GFG {
    public static void main(String[] args)
    {
        String str = "GFG";
        System.out.println(str);
  
        int hashCode = str.hashCode();
        System.out.println(hashCode);
    }
}
Producción:

GFG
70472

Pero la pregunta aquí es cómo se imprime este valor entero 70472 . Si vuelve a intentar encontrar el valor del código hash de esta string, el resultado será el mismo. Entonces, ¿cómo se calcula este código hash de string?

¿Cómo se calcula el código hash de string?
El valor del código hash de una string se calcula con la ayuda de una fórmula:

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]

dónde:

  • s[i] representa el i-ésimo carácter de la string
  • ^ se refiere al operando exponencial
  • n representa la longitud de la string

Ejemplo:

En el caso anterior, la string es «GFG». Por eso:

s[] = {'G', 'F', 'G'}
n = 3

Entonces, el valor del código hash se calculará como:

s[0]*31^(2) + s[1]*31^1 + s[2]
= G*31^2 + F*31 + G
= (as ASCII value of G = 71 and F = 70)
  71*312 + 70*31 + 71 
= 68231 + 2170 + 71
= 70472

que es el valor recibido como salida.

Por lo tanto, así es como se calcula el valor del código hash de string.

¿Valor HashCode de string vacía?

En este caso, la String es «». Por eso:

s[] = {}
n = 0

Entonces, el valor del código hash se calculará como:

s[0]*31^(0)
= 0

Por lo tanto, el valor del código hash de una string vacía siempre es 0.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *