我想根據布爾值對對象進行排序,我想在錯誤值之前對真值進行排序。compareTo方法的哪種用法更容易理解?
compareTo的以下哪些實現更具可讀性?
使用-1來改變默認的行爲布爾#compareTo方法的
public class Example implements Comparable<Example>{
Boolean isOk;
public int compareTo(Example o) {
return -1 * this.isOk.compareTo(o.isOk);
}
}
或交換了立場?
public class ExampleTwo implements Comparable<ExampleTwo>{
Boolean isOk;
public int compareTo(ExampleTwo o) {
return o.isOk.compareTo(this.isOk);
}
}
使用'-1 *'引入了一個微妙如果由於Integer.MIN_VALUE * -1 == Integer.MIN_VALUE','compareTo()'方法返回'Integer.MIN_VALUE',將會出錯。出於這個原因,我不會寫一個'compareTo()'方法來返回這樣的極值,但它絕對符合規範,所以你必須能夠處理它。 – 2010-06-21 11:18:20
@Joachim:我只是在我的回答中寫同樣的東西:) – 2010-06-21 11:20:33