Java弱哈希映射 - 需要根据值的弱点而不是键来删除条目

Bin*_*ong 7 java hashmap weakhashmap

因此,Java WeakHashMap允许创建一个映射,如果其键变弱,则删除其条目.但是,当地图中的变弱时,如何创建一个其条目被删除的Map ?我想使用地图的原因是全局哈希表,它根据ID来跟踪对象.

ID --->  Object Address

Key ---> Value
Run Code Online (Sandbox Code Playgroud)

(ID文字字符串在哪里)

我希望在对象地址变弱时删除键值对,而不是指向它们的字符串.有人对此有何看法?

axt*_*avt 8

例如,在Guava中支持这样的地图:

Map<..., ...> m = new MapMaker().weakValues().makeMap();
Run Code Online (Sandbox Code Playgroud)

  • @pgras:不,它也会删除条目。唯一的区别是,`WeakHashMap`会在后续访问地图时删除过时的条目,而Guava的实现会在后台线程中删除它们([FinalizableReferenceQueue`](http://guava-libraries.googlecode.com/svn/tags/ release08 / javadoc / com / google / common / base / FinalizableReferenceQueue.html))。 (2认同)