比较 BigIntegers
你可以比较 BigIntegers
与你在 Java 中比较 String
或其他对象相同。
例如:
BigInteger one = BigInteger.valueOf(1);
BigInteger two = BigInteger.valueOf(2);
if(one.equals(two)){
System.out.println("Equal");
}
else{
System.out.println("Not Equal");
}
输出:
Not Equal
注意:
在一般情况下,千万不能使用使用 ==
运算符来比较 BigIntegers
==
运算符:比较引用; 即两个值是否指向同一个对象equals()
方法:比较两个 BigIntegers 的内容。
例如,不应按以下方式比较 BigIntegers :
if (firstBigInteger == secondBigInteger) {
// Only checks for reference equality, not content equality!
}
这样做可能会导致意外行为,因为 ==
运算符仅检查引用相等性。如果两个 BigIntegers 包含相同的内容,但不引用同一个对象,**则会失败。**相反,使用 equals
方法比较 BigIntegers,如上所述。
你还可以将你的 BigInteger
与 0,1,10 之类的常量值进行比较。
例如:
BigInteger reallyBig = BigInteger.valueOf(1);
if(BigInteger.ONE.equals(reallyBig)){
//code when they are equal.
}
你还可以使用 compareTo()
方法比较两个 BigIntegers,如下所示:compareTo()
返回 3 个值。
- 0: 当两者相等时。
- 1: 当第一个大于第二个时(括号中的那个)。
- -1: 当第一个小于秒时。
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.
}