我需要一个带有弱键或软键的并发哈希映射,如果相等性等于而不是 ==。
对于这种key,google collection默认选择==。
有没有办法覆盖这个选择?我应该如何进行?
此致,
尼古拉斯。
你不能在谷歌收藏中这样做。目前,你也不能在番石榴中做到这一点。但是,他们最近添加了一个Equivalence接口和您期望的实现(equals
、null
-awareequals
和==
),看起来他们可能允许您指定Equivalence
将来应该用于键/值的内容(请参阅此问题) . MapMaker
此时代码似乎正在发生一些变化。
您可以使用java.util.WeakHashMap
, 与调用Collections.synchronizedMap()
如果线程争用很严重,它就不会像 ConcurrentHashMap 那样快。但它有你想要的行为。