Java长比较
简介:我在Android中有一种做长期比较的方法。基本上,我比较日期(时间戳/年代)。其中一个比较检查日期是否相等“如果(a2==a1&&b2==b1)” 问题:问题是即使这些数字相等,“如果”也不起作用。我还附上了调试屏幕上的一个屏幕截图,其中的值在示例中进行了比较 问题:您知道为什么该条件不起作用吗?我不明白,因为这只是数学问题。也许有一个演员的问题,我没有看到?所有其他情况下,“如果”都有效 方法:Java长比较,java,android,comparison,long-integer,Java,Android,Comparison,Long Integer,简介:我在Android中有一种做长期比较的方法。基本上,我比较日期(时间戳/年代)。其中一个比较检查日期是否相等“如果(a2==a1&&b2==b1)” 问题:问题是即使这些数字相等,“如果”也不起作用。我还附上了调试屏幕上的一个屏幕截图,其中的值在示例中进行了比较 问题:您知道为什么该条件不起作用吗?我不明白,因为这只是数学问题。也许有一个演员的问题,我没有看到?所有其他情况下,“如果”都有效 方法: public ArrayList<Integer> getConflicts(
public ArrayList<Integer> getConflicts(ArrayList<AssetBooking> assetBookings) {
Epoch epoch = new Epoch();
ArrayList<Integer> conflicts = new ArrayList<>();
for (AssetBooking aB : assetBookings) {
Long a1 = aB.getFromDatetime() / 1000;
Long b1 = aB.getToDatetime() / 1000;
Long a2 = epoch.getEpochNoSeconds(fromDatetime);
Long b2 = epoch.getEpochNoSeconds(toDatetime);
if (a2 == a1 && b2 == b1) {
System.out.println("equals");
}
if ((a2 < a1 && b2 >= a1) || (a2 == a1) || (a2 > a1 && b2 < b1) || (a2 > a1 && a2 < b1) || (a2 == a1 && b2 == b1)) {
conflicts.add(assetBookings.indexOf(aB));
}
}
return conflicts;
}
public ArrayList getConflicts(ArrayListLong
是一个对象。如果键入a1==a2
,则检查a1是否为a2-相同的对象,而不是相同的值。如果要对其进行比较,则必须写入a1.equals(a2)
-如String
中所示
如果您真的不需要Long
,请使用Long
-这样做会更容易,也更有效尝试以下方法:
long a1,a2;
long b1,b2;
if (a2.equals(a1) && b2.equals(b1)) {
}
尝试原语类型“long”而不是“long”这是一个包装类。它起作用了…你能帮我理解为什么人们不停地投票我的问题吗?这是一个很棒的平台,但人们只是不投票,我很想写它。我的另一个帐户我不能再发布问题了,因为人们一直这样做。Aff。如果人们不能问他们不知道的东西,我不知道这个平台的意义哦……我认为负票是因为这个问题和安卓无关,而是和Java有关,对象和原语的比较和相等是Java学习的基本主题。在谷歌或任何一本书中搜索可能会得到更快的响应