//循环标签名查询标签表中是否有对应标签 没有则创建
for (String labelName: labelNames) {
Boolean labelIdFound = false;
BigInteger labelId = labelService.getLabelIdByName(labelName);
if (labelId != null) {
for (ReservationLabelRelation r : reservationLabelRelationByReservationId) {
reservationLabelRelations.add(r);
if ( labelId.compareTo(r.getLabelId()) == 0 ){
labelIdFound = true;
break;
}
}
}else {
labelId = labelService.insertOrUpdateLabel(null, labelName);
}
在 Java 中,==
运算符用于比较基本数据类型(如 int
、double
等)和对象引用(即对象的内存地址),而不是比较对象的内容。因此,当你使用 ==
运算符比较两个 BigInteger
对象时,你实际上比较的是它们的引用而不是它们的值。这意味着即使两个 BigInteger
对象的值相等,它们的引用也可能不相等,因此 ==
运算符不能用来判断两个 BigInteger
对象是否相等。
这是因为 BigInteger
是一个类,它是引用类型,而不是基本数据类型。在 Java 中,基本数据类型的比较是按照它们的值来进行的,而引用类型的比较是按照它们在内存中的地址来进行的。
为了比较 BigInteger
对象的值是否相等,你应该使用 equals()
方法或者 compareTo()
方法,因为这些方法会比较对象的内容而不是引用。这样可以确保正确地判断两个 BigInteger
对象是否相等。
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789012345678901234567890");
BigInteger num2 = new BigInteger("123456789012345678901234567890");
int comparisonResult = num1.compareTo(num2);
if (comparisonResult == 0) {
System.out.println("两个大整数相等");
} else {
System.out.println("两个大整数不相等");
}
}
}
使用 compareTo()
方法来判断两个 BigInteger
是否相等。这个方法会返回一个整数值,表示两个 BigInteger
的比较结果。
如果返回值为 0,则表示两个 BigInteger
相等。
如果返回值小于 0,则表示调用方法的 BigInteger
小于传递的参数 BigInteger
。
如果返回值大于 0,则表示调用方法的 BigInteger
大于传递的参数 BigInteger
。