Méthode de comparaison de valeurs long 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

La classe Long en Java fournit une méthode compare() qui nous permet de comparer numériquement deux valeurs de type long. Cette méthode est particulièrement utile lorsque nous devons déterminer si une valeur de type long est supérieure, inférieure ou égale à une autre.

Dans ce labo (LabEx), nous explorerons la syntaxe, les paramètres et les valeurs de retour de la méthode compare() grâce à des exemples pratiques. À la fin de ce labo, vous serez à l'aise pour utiliser cette méthode dans vos programmes Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/DataStructuresGroup -.-> java/sorting("Sorting") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/SystemandDataProcessingGroup -.-> java/math_methods("Math Methods") subgraph Lab Skills java/operators -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/if_else -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/for_loop -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/arrays -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/arrays_methods -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/sorting -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/user_input -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/exceptions -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} java/math_methods -.-> lab-117868{{"Méthode de comparaison de valeurs long en Java"}} end

Comprendre la méthode Long.compare()

Commençons par comprendre ce que fait la méthode Long.compare() et comment elle fonctionne.

La méthode Long.compare() compare numériquement deux valeurs de type long et retourne :

  • Une valeur négative si la première valeur est inférieure à la deuxième
  • Zéro si les deux valeurs sont égales
  • Une valeur positive si la première valeur est supérieure à la deuxième

Cela est particulièrement utile pour ordonner des nombres et implémenter des algorithmes de tri.

Créons un simple programme Java pour démontrer cette méthode. Tout d'abord, nous devons créer un nouveau fichier Java :

  1. Ouvrez le WebIDE et créez un nouveau fichier nommé LongCompare.java dans le répertoire du projet.
  2. Ajoutez le code suivant au fichier :
public class LongCompare {
    public static void main(String[] args){
        // Définition de valeurs long pour la comparaison
        long value1 = 15L;
        long value2 = 25L;
        long value3 = 15L;

        // Comparaison de value1 et value2
        int result1 = Long.compare(value1, value2);
        System.out.println("Comparaison de " + value1 + " et " + value2 + ": " + result1);

        // Comparaison de value1 et value3
        int result2 = Long.compare(value1, value3);
        System.out.println("Comparaison de " + value1 + " et " + value3 + ": " + result2);

        // Comparaison de value2 et value1
        int result3 = Long.compare(value2, value1);
        System.out.println("Comparaison de " + value2 + " et " + value1 + ": " + result3);

        // Explication des résultats
        System.out.println("\nExplication :");
        System.out.println("- Une valeur négative signifie que le premier nombre est inférieur au deuxième");
        System.out.println("- Zéro signifie que les deux nombres sont égaux");
        System.out.println("- Une valeur positive signifie que le premier nombre est supérieur au deuxième");
    }
}

Maintenant, compilons et exécutons ce programme :

  1. Ouvrez le terminal dans le WebIDE.
  2. Exécutez la commande suivante :
javac LongCompare.java && java LongCompare

Vous devriez voir la sortie suivante :

Comparaison de 15 et 25: -1
Comparaison de 15 et 15: 0
Comparaison de 25 et 15: 1

Explication :
- Une valeur négative signifie que le premier nombre est inférieur au deuxième
- Zéro signifie que les deux nombres sont égaux
- Une valeur positive signifie que le premier nombre est supérieur au deuxième

Remarquez comment la méthode retourne -1 lors de la comparaison de 15 avec 25 (car 15 est inférieur à 25), 0 lors de la comparaison de 15 avec 15 (car ils sont égaux) et 1 lors de la comparaison de 25 avec 15 (car 25 est supérieur à 15).

Utilisation de Long.compare() avec des instructions conditionnelles

Maintenant que nous comprenons la fonctionnalité de base de la méthode Long.compare(), voyons comment nous pouvons l'utiliser avec des instructions conditionnelles pour prendre des décisions dans nos programmes.

Nous allons créer un nouveau programme qui compare deux valeurs de type long et fournit des messages appropriés en fonction du résultat de la comparaison.

  1. Mettez à jour le fichier LongCompare.java avec le code suivant :
public class LongCompare {
    public static void main(String[] args){
        // Définition de deux valeurs long pour la comparaison
        long number1 = 100L;
        long number2 = 50L;

        // Utilisation de Long.compare() avec des instructions conditionnelles
        int comparisonResult = Long.compare(number1, number2);

        if (comparisonResult > 0) {
            System.out.println(number1 + " est supérieur à " + number2);
        } else if (comparisonResult < 0) {
            System.out.println(number1 + " est inférieur à " + number2);
        } else {
            System.out.println(number1 + " est égal à " + number2);
        }

        // Essayons avec des valeurs différentes
        number1 = 30L;
        number2 = 30L;

        comparisonResult = Long.compare(number1, number2);

        if (comparisonResult > 0) {
            System.out.println(number1 + " est supérieur à " + number2);
        } else if (comparisonResult < 0) {
            System.out.println(number1 + " est inférieur à " + number2);
        } else {
            System.out.println(number1 + " est égal à " + number2);
        }
    }
}

Maintenant, compilez et exécutez le programme :

javac LongCompare.java && java LongCompare

Vous devriez voir la sortie suivante :

100 est supérieur à 50
30 est égal à 30

Dans cet exemple, nous utilisons la valeur de retour de Long.compare() pour déterminer la relation entre deux valeurs de type long :

  • Lorsque la méthode retourne une valeur positive, cela signifie que number1 est supérieur à number2
  • Lorsque la méthode retourne une valeur négative, cela signifie que number1 est inférieur à number2
  • Lorsque la méthode retourne zéro, cela signifie que number1 est égal à number2

Ce modèle est couramment utilisé en Java lorsque vous avez besoin de comparer des valeurs et d'effectuer différentes actions en fonction des résultats de la comparaison.

Comparaison d'éléments dans des tableaux de type long

Dans de nombreux scénarios de programmation, nous devons comparer des éléments dans des tableaux. La méthode Long.compare() peut être très utile à cet effet.

Écrivons un programme qui compare les éléments correspondants dans deux tableaux de type long :

  1. Mettez à jour le fichier LongCompare.java avec le code suivant :
public class LongCompare {
    public static void main(String[] args){
        // Création de deux tableaux de valeurs long
        long[] array1 = {10L, 20L, 30L, 40L, 50L};
        long[] array2 = {15L, 20L, 25L, 40L, 55L};

        System.out.println("Comparaison des éléments de deux tableaux :");

        // Vérifiez que les deux tableaux ont la même longueur
        if (array1.length != array2.length) {
            System.out.println("Les tableaux ont des longueurs différentes et ne peuvent pas être comparés élément par élément.");
            return;
        }

        // Comparez chaque élément
        for (int i = 0; i < array1.length; i++) {
            int result = Long.compare(array1[i], array2[i]);

            System.out.print("Élément à l'index " + i + " : ");

            if (result > 0) {
                System.out.println(array1[i] + " est supérieur à " + array2[i]);
            } else if (result < 0) {
                System.out.println(array1[i] + " est inférieur à " + array2[i]);
            } else {
                System.out.println(array1[i] + " est égal à " + array2[i]);
            }
        }

        // Calculez combien d'éléments sont supérieurs, inférieurs ou égaux
        int greaterCount = 0;
        int lessCount = 0;
        int equalCount = 0;

        for (int i = 0; i < array1.length; i++) {
            int result = Long.compare(array1[i], array2[i]);

            if (result > 0) {
                greaterCount++;
            } else if (result < 0) {
                lessCount++;
            } else {
                equalCount++;
            }
        }

        System.out.println("\nRésumé :");
        System.out.println("- Nombre d'éléments où array1 > array2 : " + greaterCount);
        System.out.println("- Nombre d'éléments où array1 < array2 : " + lessCount);
        System.out.println("- Nombre d'éléments où array1 = array2 : " + equalCount);
    }
}

Compilez et exécutez le programme :

javac LongCompare.java && java LongCompare

Vous devriez voir la sortie suivante :

Comparaison des éléments de deux tableaux :
Élément à l'index 0 : 10 est inférieur à 15
Élément à l'index 1 : 20 est égal à 20
Élément à l'index 2 : 30 est supérieur à 25
Élément à l'index 3 : 40 est égal à 40
Élément à l'index 4 : 50 est inférieur à 55

Résumé :
- Nombre d'éléments où array1 > array2 : 1
- Nombre d'éléments où array1 < array2 : 2
- Nombre d'éléments où array1 = array2 : 2

Dans cet exemple, nous comparons chaque élément de array1 avec l'élément correspondant dans array2 au même index. Nous utilisons une boucle for pour parcourir les tableaux et la méthode Long.compare() pour comparer les éléments.

Cette approche peut être très utile dans de nombreuses applications, telles que la recherche de différences entre des ensembles de données, la comparaison de données de séries temporelles ou la vérification si deux tableaux ont le même contenu.

Création d'un programme interactif avec Scanner

Maintenant, créons un programme interactif qui permet à l'utilisateur de saisir deux valeurs de type long, puis les compare en utilisant la méthode Long.compare().

Pour cela, nous allons utiliser la classe Scanner, qui nous permet de lire les entrées de l'utilisateur.

  1. Mettez à jour le fichier LongCompare.java avec le code suivant :
import java.util.Scanner;

public class LongCompare {
    public static void main(String[] args) {
        // Créez un objet Scanner pour lire les entrées de l'utilisateur
        Scanner scanner = new Scanner(System.in);

        System.out.println("Bienvenue dans l'outil de comparaison de valeurs long !");
        System.out.println("Ce programme compare deux valeurs long que vous saisissez.");
        System.out.println("----------------------------------------");

        // Demandez à l'utilisateur de saisir le premier nombre
        System.out.print("Saisissez le premier nombre long : ");
        long firstNumber;

        // Utilisez un bloc try-catch pour gérer les entrées invalides
        try {
            firstNumber = scanner.nextLong();
        } catch (Exception e) {
            System.out.println("Entrée invalide. Veuillez saisir un nombre long valide.");
            return;
        }

        // Demandez à l'utilisateur de saisir le deuxième nombre
        System.out.print("Saisissez le deuxième nombre long : ");
        long secondNumber;

        // Utilisez un bloc try-catch pour gérer les entrées invalides
        try {
            secondNumber = scanner.nextLong();
        } catch (Exception e) {
            System.out.println("Entrée invalide. Veuillez saisir un nombre long valide.");
            return;
        }

        // Comparez les deux nombres
        int result = Long.compare(firstNumber, secondNumber);

        // Affichez le résultat
        System.out.println("\nRésultat de la comparaison de " + firstNumber + " et " + secondNumber + " :");

        if (result > 0) {
            System.out.println(firstNumber + " est supérieur à " + secondNumber);
        } else if (result < 0) {
            System.out.println(firstNumber + " est inférieur à " + secondNumber);
        } else {
            System.out.println(firstNumber + " est égal à " + secondNumber);
        }

        // Fermez le Scanner pour libérer les ressources
        scanner.close();
    }
}

Compilez et exécutez le programme :

javac LongCompare.java && java LongCompare

Vous devriez voir une sortie similaire à celle-ci (vos résultats dépendront des valeurs que vous saisissez) :

Bienvenue dans l'outil de comparaison de valeurs long !
Ce programme compare deux valeurs long que vous saisissez.
----------------------------------------
Saisissez le premier nombre long : 1500
Saisissez le deuxième nombre long : 2000

Résultat de la comparaison de 1500 et 2000 :
1500 est inférieur à 2000

Essayez d'exécuter le programme à nouveau avec des entrées différentes :

javac LongCompare.java && java LongCompare

Par exemple, si vous saisissez 5000 et 3000 :

Bienvenue dans l'outil de comparaison de valeurs long !
Ce programme compare deux valeurs long que vous saisissez.
----------------------------------------
Saisissez le premier nombre long : 5000
Saisissez le deuxième nombre long : 3000

Résultat de la comparaison de 5000 et 3000 :
5000 est supérieur à 3000

Dans cet exemple, nous utilisons la classe Scanner pour lire les entrées de l'utilisateur. Nous utilisons également des blocs try-catch pour gérer les erreurs potentielles si l'utilisateur saisit des entrées invalides.

La méthode Scanner.nextLong() lit une valeur de type long saisie par l'utilisateur, puis nous utilisons la méthode Long.compare() pour comparer les deux valeurs saisies par l'utilisateur.

Ce programme interactif montre comment vous pouvez utiliser la méthode Long.compare() dans une application du monde réel impliquant des entrées utilisateur.

Résumé

Dans ce laboratoire (lab), nous avons exploré la méthode Long.compare() en Java, qui est un outil utile pour comparer numériquement des valeurs de type long. Nous avons appris :

  • La syntaxe de base et les valeurs de retour de la méthode Long.compare()
  • Comment utiliser la méthode avec des instructions conditionnelles pour prendre des décisions en fonction des résultats de comparaison
  • Comment appliquer la méthode pour comparer des éléments dans des tableaux
  • Comment créer un programme interactif qui utilise la méthode avec des entrées utilisateur

La méthode Long.compare() est particulièrement utile dans les algorithmes de tri, lors de l'implémentation de l'interface Comparable, ou chaque fois que vous avez besoin de déterminer l'ordre des valeurs de type long. Comprendre cette méthode constitue une base pour des techniques de programmation Java plus avancées impliquant la comparaison et l'ordonnancement.