Método System.identityHashCode() en Java con ejemplos

java.lang.System.identityHashCode() es el método que se usa para devolver el mismo código hash para cualquier objeto dado que es devuelto por el método predeterminado hashCode(). Además, para cada código hash con una referencia nula, se devuelve cero.

Puntos a recordar:

  • De forma predeterminada, cada clase, ya sea implícita o explícitamente, proporciona un método hashCode()
  • Un código hash es generalmente un número generado a partir de cualquier objeto que permite que los objetos se almacenen o recuperen muy rápidamente en una tabla Hash.
  • En Java, hashCode() por defecto es un método nativo, lo que significa que el método tiene un modificador ‘nativo’, cuando se implementa directamente en el código nativo en la JVM.
  • Se utiliza para digerir todos los datos almacenados en una instancia de la clase en un único valor hash, es decir, un entero de 32 bits con signo.
  • Sintaxis:

public static int identityHashCode(Object x)

Parámetros: El parámetro x es del tipo Hash y se refiere al código hash que se necesita calcular.

Valor de retorno: este método devuelve el código hash.

Los siguientes programas ilustran el uso del método java.lang.System.identityHashCode().

Programa 1:

// Java program to demonstrate working
// of java.lang.System.identityHashCode() method.
import java.lang.*;
import java.io.*;
  
public class SystemCode1 {
  
    public static void main(String[] args) throws Exception
    {
  
        File filename1 = new File("Welcome");
        File filename2 = new File("Welcome");
        File filename3 = new File("Geek");
        File filename4 = new File("World");
  
        // Returns the HashCode
        int returnvalue1 = System.identityHashCode(filename1);
        System.out.println(returnvalue1);
  
        // Returns different HashCode for same filename
        int returnvalue2 = System.identityHashCode(filename2);
        System.out.println(returnvalue2);
  
        // Returns the HashCode
        int returnvalue3 = System.identityHashCode(filename3);
        System.out.println(returnvalue3);
  
        // Returns the HashCode
        int returnvalue4 = System.identityHashCode(filename4);
        System.out.println(returnvalue4);
    }
}
Producción:

589431969
1252169911
2101973421
685325104

Explicación:
en el programa anterior, se generan códigos hash o números diferentes a partir de un objeto, incluso si tienen el mismo nombre. Como aquí, podemos ver que los dos primeros términos son iguales, es decir, «Bienvenido», pero tenemos dos valores diferentes, que son

  • 589431969
  • 1252169911

respectivamente para la primera y segunda Bienvenida

Programa 2:

// Java program to demonstrate working
// of java.lang.System.identityHashCode() method.
import java.lang.*;
import java.io.*;
  
public class SystemCode2 {
  
    public static void main(String[] args) throws Exception
    {
  
        File filename1 = new File("10");
        File filename2 = new File("shyam");
        File filename3 = new File("s12");
        File filename4 = new File("s12");
  
        // Returns the HashCode
        int returnvalue1 = System.identityHashCode(filename1);
        System.out.println(returnvalue1);
  
        // Returns the HashCode
        int returnvalue2 = System.identityHashCode(filename2);
        System.out.println(returnvalue2);
  
        // Returns different HashCode for same filename
        int returnvalue3 = System.identityHashCode(filename3);
        System.out.println(returnvalue3);
  
        // Returns different HashCode for same filename
        int returnvalue4 = System.identityHashCode(filename4);
        System.out.println(returnvalue4);
    }
}
Producción:

589431969
1252169911
2101973421
685325104

Publicación traducida automáticamente

Artículo escrito por ankita_chowrasia 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 *