Ho una classe, che ho semplificato a questo:Perché il mio semplice comparatore è rotto?
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);
}
}
Voglio ordinare un array di questa cosa. Così ho creato un semplice copmarator:
private static final Comparator<Thing> reverse = new Comparator<Thing>() {
public int compare(Thing a, Thing b) {
return a.getValue() - b.getValue();
}
};
Ho quindi utilizzare la forma a due argomenti di Arrays.sort
.
Questo funziona bene per i miei casi di test, ma a volte va tutto storto con la matrice che finisce in un ordine strano ma ripetibile. Come può essere?
Va tutto bene, come? – MarkusQ
Questo è il puzzle! – erickson