10

我需要一个共享和(引用相等而不是键上的弱引用)的Map属性的实现。IdentityHashMapWeakHashMapequals()

你推荐什么实现(它必须在 Android 上工作)?

4

1 回答 1

6

如果您建议 Guava,那么new MapMaker().weakKeys().makeMap()将直接完成这项工作,因为weakKeys键使用引用相等。

的文档weakKeys说:

指定存储在映射中的每个键(不是值)都应该包装在 WeakReference 中(默认情况下,使用强引用)。警告:使用此方法时,生成的 map 将使用标识 (==) 比较来确定键的相等性,这在技术上违反了 Map 规范,并且可能不是您所期望的。

于 2014-04-07T16:06:50.160 回答