Java Language Comparer les BigIntegers


Exemple

Vous pouvez comparer BigIntegers même manière que vous comparez String ou d'autres objets en Java.

Par exemple:

BigInteger one = BigInteger.valueOf(1);
BigInteger two = BigInteger.valueOf(2);

if(one.equals(two)){
    System.out.println("Equal");
}
else{
    System.out.println("Not Equal");
}

Sortie:

Not Equal

Remarque:

En général, n'utilisez pas l'opérateur == pour comparer BigIntegers

  • == opérateur: compare les références; c'est-à-dire si deux valeurs se réfèrent au même objet
  • méthode equals() : compare le contenu de deux BigIntegers.

Par exemple, BigIntegers ne doit pas être comparé de la manière suivante:

if (firstBigInteger == secondBigInteger) {
  // Only checks for reference equality, not content equality!
}

Cela peut entraîner un comportement inattendu, car l'opérateur == ne vérifie que l'égalité de référence. Si les deux BigIntegers contiennent le même contenu, mais ne font pas référence au même objet, cela échouera. Au lieu de cela, comparez BigIntegers en utilisant les méthodes equals , comme expliqué ci-dessus.

Vous pouvez également comparer votre BigInteger à des valeurs constantes telles que 0,1,10.

par exemple:

BigInteger reallyBig = BigInteger.valueOf(1);
if(BigInteger.ONE.equals(reallyBig)){
    //code when they are equal.
}    

Vous pouvez également comparer deux BigIntegers en utilisant la méthode compareTo() , comme suit: compareTo() renvoie 3 valeurs.

  • 0: quand les deux sont égaux .
  • 1: Lorsque le premier est supérieur à la seconde (celui entre parenthèses).
  • -1: Quand le premier est inférieur à la seconde.
BigInteger reallyBig = BigInteger.valueOf(10);
BigInteger reallyBig1 = BigInteger.valueOf(100);

if(reallyBig.compareTo(reallyBig1) == 0){
    //code when both are equal.
}
else if(reallyBig.compareTo(reallyBig1) == 1){
    //code when reallyBig is greater than reallyBig1.
}
else if(reallyBig.compareTo(reallyBig1) == -1){
    //code when reallyBig is less than reallyBig1.
}