为什么我的简单比较器坏了?
我有一个类,我已经简化为:
final class Thing {
private final int value;
public Thing(int value) {
this.value = value;
}
public int getValue() {
return value;
}
@Override public String toString() {
return Integer.toString(value);
}
}
我想对这个东西的数组进行排序。所以我创建了一个简单的复制器:
private static final Comparator<Thing> reverse = new Comparator<Thing>() {
public int compare(Thing a, Thing b) {
return a.getValue() - b.getValue();
}
};
然后,我使用 的两个参数形式。Arrays.sort
这适用于我的测试用例,但有时数组以奇怪但可重复的顺序结束,因此完全出错。这怎么可能?