Exploration du code de hachage Float en Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à connaître la méthode hashCode() de la classe Float en Java. Cette méthode est utilisée pour obtenir le code de hachage d'une valeur float. Un code de hachage est une valeur entière unique qui est associée à chaque objet en Java. Ce laboratoire vous guidera à travers différents exemples de code sur la manière d'utiliser la méthode hashCode().

Créer un nouveau fichier Java

Tout d'abord, créez un nouveau fichier Java à ~/projet/FloatHashcode.java à l'aide de la commande suivante :

touch ~/projet/FloatHashcode.java

Définir des variables Float

Dans cette étape, définissez deux variables Float et initialisez-les avec deux valeurs float différentes. Importez également la classe Float du package java.lang.

import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        Float n1 = 2.3456F;
        Float n2 = -4.567F;
    }
}

Obtenir le code de hachage à l'aide de la méthode hashCode() de Float

Dans cette étape, utilisez la méthode hashCode() de la classe Float pour obtenir le code de hachage des variables Float définies dans l'étape précédente.

import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        Float n1 = 2.3456F;
        Float n2 = -4.567F;

        int hash1 = n1.hashCode(); // obtenir le code de hachage de n1
        int hash2 = n2.hashCode(); // obtenir le code de hachage de n2

        System.out.println("Le code de hachage pour n1 est " + hash1);
        System.out.println("Le code de hachage pour n2 est " + hash2);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Obtenir le code de hachage pour une entrée utilisateur

Dans cette étape, créez un programme qui invite l'utilisateur à entrer une valeur float, obtient le code de hachage de l'entrée à l'aide de la méthode hashCode() de la classe Float, puis imprime le code de hachage à la console.

import java.util.Scanner;
import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Entrez une valeur float : ");
        float input = scanner.nextFloat();
        Float n = input;

        int hashCode = n.hashCode();

        System.out.println("Le code de hachage pour l'entrée " + input + " est " + hashCode);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

#Comparer les codes de hachage de deux valeurs Float

Dans cette étape, créez un programme qui compare les codes de hachage de deux valeurs Float.

import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        Float n1 = 2.3456F;
        Float n2 = 2.3456F;

        int hash1 = n1.hashCode();
        int hash2 = n2.hashCode();

        if (hash1 == hash2) {
            System.out.println("Les codes de hachage de n1 et n2 sont égaux");
        } else {
            System.out.println("Les codes de hachage de n1 et n2 ne sont pas égaux");
        }
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Redéfinir la méthode hashCode() dans une classe

Dans cette étape, nous allons redéfinir la méthode hashCode() dans une classe. Ici, nous créons une classe MyClass avec deux variables float a et b. Nous redéfinissons ensuite la méthode hashCode() dans la classe et calculons le code de hachage de l'objet à l'aide de la formule (31 * Float.floatToIntBits(a)) + Float.floatToIntBits(b).

import java.lang.Float;

class MyClass {
    float a;
    float b;

    public MyClass(float a, float b) {
        this.a = a;
        this.b = b;
    }

    @Override
    public int hashCode() {
        return (31 * Float.floatToIntBits(a)) + Float.floatToIntBits(b);
    }
}

public class FloatHashcode {
    public static void main(String[] args) {
        MyClass obj = new MyClass(2.3456F, -4.567F);

        int hash = obj.hashCode();

        System.out.println("Le code de hachage pour obj est " + hash);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Gérer les pointeurs nuls

Dans cette étape, créez un programme qui gère les pointeurs nuls lors de la récupération du code de hachage d'un objet Float.

import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        Float n = null;

        int hash = (n!= null)? n.hashCode() : 0;

        System.out.println("Le code de hachage pour n est " + hash);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Utiliser Objects.hashCode() pour obtenir le code de hachage

Dans cette étape, nous utilisons la méthode Objects.hashCode() pour obtenir le code de hachage d'un objet Float. Cette méthode renvoie un code de hachage de n'importe quel objet lui étant passé et gère les pointeurs nuls de manière appropriée.

import java.lang.Float;
import java.util.Objects;

public class FloatHashcode {
    public static void main(String[] args) {
        Float n = null;

        int hash = Objects.hashCode(n);

        System.out.println("Le code de hachage pour n est " + hash);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Utiliser Float.hashCode(float) pour les flottants primitifs

Dans cette étape, nous utilisons la méthode Float.hashCode(float) pour obtenir le code de hachage d'une valeur primitive float. Cette méthode renvoie le même code de hachage que celui renvoyé par la méthode floatToIntBits(float).

import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        float f = 2.3456F;

        int hash = Float.hashCode(f);

        System.out.println("Le code de hachage pour f est " + hash);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Utiliser Float.floatToIntBits(float) pour obtenir la représentation entière d'un flottant

Dans cette étape, nous utilisons la méthode Float.floatToIntBits(float) pour obtenir la représentation entière d'une valeur float. Cette méthode renvoie la même représentation entière qui est utilisée pour calculer le code de hachage d'une valeur float.

import java.lang.Float;

public class FloatHashcode {
    public static void main(String[] args) {
        float f = 2.3456F;

        int intBits = Float.floatToIntBits(f);

        System.out.println("La représentation entière de f est " + intBits);
    }
}

Pour compiler et exécuter le fichier, exécutez les commandes suivantes dans le terminal :

javac ~/projet/FloatHashcode.java
java FloatHashcode

Récapitulatif

Dans ce laboratoire, vous avez appris sur la méthode hashCode() de la classe Float en Java. Vous avez appris comment obtenir le code de hachage d'une valeur float, comment redéfinir la méthode hashCode() dans une classe, utiliser la méthode Objects.hashCode(), et gérer les pointeurs nuls lors de la récupération du code de hachage d'un objet. Vous avez également appris sur la méthode floatToIntBits(float), qui est utilisée pour obtenir la représentation entière d'une valeur float.