Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要一个共享和(引用相等而不是键上的弱引用)的Map属性的实现。IdentityHashMapWeakHashMapequals()
Map
IdentityHashMap
WeakHashMap
equals()
你推荐什么实现(它必须在 Android 上工作)?
如果您建议 Guava,那么new MapMaker().weakKeys().makeMap()将直接完成这项工作,因为weakKeys键使用引用相等。
new MapMaker().weakKeys().makeMap()
weakKeys
的文档weakKeys说:
指定存储在映射中的每个键(不是值)都应该包装在 WeakReference 中(默认情况下,使用强引用)。警告:使用此方法时,生成的 map 将使用标识 (==) 比较来确定键的相等性,这在技术上违反了 Map 规范,并且可能不是您所期望的。