我有一個值類(位置),其中有兩個雙打(x和y)。 我也有一艘班級船隻,它有一個帶有位置物體的屬性。我應該使用什麼數據結構進行常量時間查詢,從一對不斷變化的值到java中的對象?
我需要能夠做一個查找,如:在(5,7)與船持續時間。 我也希望能夠更改位置對象的值,因爲多個船舶可以引用相同的位置對象,並且當位置對象更改時它們都必須一起移動。我已經看過hashmap,但能夠在新的位置獲取船舶(5,7)我需要重寫位置對象的哈希碼(以便具有相同值的位置具有相同的哈希),我聽說你不應該改變哈希列表中對象的哈希碼。
重寫'hashCode()'方法並不意味着你改變了地圖中對象的哈希碼。它只意味着你控制如何生成哈希碼。 – Laf
看看[guava'Table'](https://github.com/google/guava/wiki/NewCollectionTypesExplained#table) – 2017-04-06 18:04:48
@Laf:如果'hashCode()'是基於值並且值可以改變,哈希碼可以改變。這個問題表明'Position'對象應該是可變的,這是合理的。 – Holger