是否可以創建一個 TreeMap,其中鍵的自然順序不一致(key1.equals(key2) = true, key1.compareTo(k3) = 1, key2.compareTo(key3) = -1)?如果我將更改 compareTo 以便不會發生這種情況,但是會有 key1.equals(key2) = false 但 key1.compareTo(key2)=0 的鍵會好嗎?
1 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
你會得到不可預知的行為,因為你將使用TreeMap
它聲明的約束的外部。
Map
接口被聲明為依賴于equals()
方法,并且被聲明為TreeMap
依賴于compareTo()
. 所以這兩種方法都是相關的,應該是一致的,否則你不能依賴結果。即使它在某些 JVM 版本/實現中工作,它也可能會在不同的版本/實現中中斷。
從技術上講,該方法TreeMap
使用該compareTo()
方法,因此您可能會得到一個compareTo()
本身沒問題的方法,只是與 不兼容equals()
,但我肯定不會推薦!
添加回答
舉報
0/150
提交
取消