Java中是否存在一个弱/软的双向映射?

3
我希望有一个“符号字母表”,可以具有双向映射和弱引用/软引用。类似于Apache的Common BidiMap(或Guava的BiMap),并具有类似于WeakMap的接口。
一种解决方案是使用BiMap<WeakReference<K>,V>,并定期清理条目,但这不是最优的。有什么建议吗?

可行,但是你提出的解决方案并不是真正的解决方案,因为你无法在WeakReference<K>的映射中查找K - Louis Wasserman
如果您向Guava提交了一个功能请求,并附上更多关于为什么需要这样的结构的解释,那也可能会有所帮助。 - Louis Wasserman
是的,你对于 'BiMap<WeakReference<K>,V>' 是正确的。我放弃了那个方案。现在我在 Apache Commons 的 'AbstractDualBidiMap' 上实现了一些东西(使用两个 'ReferenceMaps'),但我仍在测试它是否能按预期工作。谢谢。 - miltos
1个回答

3

如果您想构建自定义实现,几乎肯定的正确方法是构建自己的自定义哈希表,并维护一个 ReferenceQueue 以跟踪移除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接