gpt4 book ai didi

java - 比较方法抛出异常: Comparison method violates its general contract

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:00 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
why does my compare method throw exception — Comparison method violates its general contract!

我有这段代码:

class TimeComparatorTipo0 implements Comparator {
@Override
public int compare(Object a, Object b) {
String Time1 = ((DataImportedTipo0) a).ora;
Long VolTot1 = Long.parseLong(((DataImportedTipo0) a).volume_totale);

String Time2 = ((DataImportedTipo0) b).ora;
Long VolTot2 = Long.parseLong(((DataImportedTipo0) b).volume_totale);

if (Time1.equals(Time2))
{
if ( VolTot1.compareTo(VolTot2) > 0)
return 1;
else
return -1;
}
else
return Time1.compareTo(Time2);
}
};

有时它会抛出这个异常:

java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeForceCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:223)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at java.util.Collections.sort(Collections.java:217)
at ManageUrl.DownloadUrl.StartThreadDowloadTipo0(DownloadUrl.java:893)
at ManageUrl.DownloadUpdateWorkflow$ConsumerTipo0.run(DownloadUpdateWorkflow.java:278)

为什么?

1) 如何避免?2) 我怎样才能捕捉到这个异常?

提前致谢。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com