與使用equals和hashcode相比,它是一個壞主意(可能會有後果我忽略)嗎?我不關心我只需要排序的元素的排序是確定性的。這當然假設我的equals和hashcode是正確的。根據等號和哈希碼實現compareTo
這裏是我的compareTo是什麼樣子
@Override
public int compareTo(DividendEvent other) {
final int BEFORE = -1;
final int EQUAL = 0;
final int AFTER = 1;
if(other == null){
return BEFORE;
}
else if (this.equals(other)){
return EQUAL;
}
else if (this.hashCode()>other.hashCode()){
return AFTER;
}
else{
return BEFORE;
}
}
您是否實現了'hashCode'方法來考慮某種排序? –
真的沒有比hashcode更好的屬性來比較嗎? – Kayaman
糟糕的想法 - 'equals'很好,但'hashCode'不能保證也不會是唯一的,只是'bucketing'。即使你實現它是唯一的,它不會再作爲一個好的hashCode。 – Kenney