I would like a "symbol alphabet" to have a bi-directional map with weak/soft references. Something like an Apache's Common BidiMap (or Guava's BiMap) with a WeakMap-like interface.

A solution would be to use BiMap<WeakReference<K>,V> and once in a while clean-up entries, but it's not optimal. Any suggestions?

有帮助吗?

解决方案

If you're up for building a custom implementation, almost certainly the right way to do it will be to build your own custom hash table and maintain a ReferenceQueue that's used to track removals.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top