我試圖在非常內存受限的環境中實現一個Map。我預計地圖的值類型會有很多重複(即不僅僅是有很多x和y使得x.equals(y),而是許多x和y使得x == y)。因此,我想將這些指針保存在一個小數組中(通常情況下,少於幾十個條目),並使用從字節數組中擴充出來的整數對其進行索引;通常這會導致大量節省。儘管如此,這需要通過某種方式來跟蹤不同的引用。我可以在一些列表中對它們全部進行跟蹤,並在每次添加新值時對其進行線性搜索,但這樣地圖不會縮放到超過幾百個不同的值(即使大量不同的值價值是不常見的,這不是不可能的)。這種映射對於內部Java類來說應該很容易實現,因爲它只需要進行指針比較,但是這個接口似乎沒有公開(事實上,因爲默認的Object hashCode方法只是返回底層的指針大多數實現中,我處於一個諷刺的地位,就是被實現hashCode的用戶所傷害的Map實現者)。在Java中維護一組不同的對象
有沒有辦法得到這種行爲?
IdentityHashMap? – MeBigFatGuy 2011-04-15 04:07:59