Search code examples
javadata-structuresweak-referencesbimap

Is there a weak/soft bidirectional Map in Java?


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?


Solution

  • 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.