比較 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.
}