如果Java TreeSet中設置有比較處理排序邏輯的對象,但對象(類)也實現了媲美,並具有在其上實現有效的compareTo方法。TreeSet的比較器或comparble.compareTo()優先
哪一個優先?比較器中的邏輯或compareTo方法中的邏輯?
非常感謝。
如果Java TreeSet中設置有比較處理排序邏輯的對象,但對象(類)也實現了媲美,並具有在其上實現有效的compareTo方法。TreeSet的比較器或comparble.compareTo()優先
哪一個優先?比較器中的邏輯或compareTo方法中的邏輯?
非常感謝。
傳入給TreeSet構造函數的Comparator優先。這允許使用與對象的compareTo
實現的不同的比較算法。如果不是這樣的話,你將永遠無法使用與TreeSet不同的比較算法。
這闡明瞭相當明確in the Javadocs(強調):
public TreeSet(Comparator<? super E> comparator)
構造一個新的,空的樹集,根據指定的比較排序。 ...參數:
comparator
- 將用於訂購該套件的比較器。
+1供參考。 –
1澄清點。 –