WeakHashMap for values



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I need something like WeakHashMap, but with the inverse function: I want
the values to be weakly referenced to, and the entry to be discarded
from the map once the value no longer exists. Is there a standard
implementation for this?

But maybe, as happens often, I am saying: I want X, whereas actually I
want Y, but think I need X to achieve it. So here is my real problem:

I have some small wrapper objects, whose identity is determined by the
array of some other objects they contain. I want to avoid unnecessary
implementations of those wrappers, so I wanted to write a factory
method. The first idea is to have a Map mapping lists to objects
(arrays do not give good hash codes, so I convert them with
Arrays.asList first). Now, the whole idea is to save memory, so I don’t
want this map to get unnecessarily big. The idea is: using weak
references I can have it clean up itself. But WeakHashMap does just the
inverse: it weakly wraps the key, not the value. And using the
suggestion in the javadoc will not work too, I think: I can wrap the
values myself, but the keys are lists made on the fly, so the weak hash
map will throw those entries away too soon!

One solution I see, is to use an ordinary HashMap, wrap the values in
weak references, and do some cleanup in the map from time to time. But
I am not sure how I should implement ‘from time to time’, then.

Suggestions welcome!

TIA, H.
- --
Hendrik Maryns

==================
http://aouw.org
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD4DBQFEiEoNe+7xMGD3itQRAimdAJiJ2EnFnfL3x5/yKkhP309ok4LlAJ4sWKJs
zwM7OKrbnf4YScBMJShK2w==
=EIP6
-----END PGP SIGNATURE-----
.



Relevant Pages

  • Re: WeakHashMap for values
    ... Hash: SHA1 ... The first idea is to have a Map mapping lists to objects ... weak references, and do some cleanup in the map from time to time. ... public class WeakValueHashMap extends HashMap { ...
    (comp.lang.java.programmer)
  • Re: WeakHashMap for values
    ... Hash: SHA1 ... The first idea is to have a Map mapping lists to objects ... weak references, and do some cleanup in the map from time to time. ... old = (WeakReference) super.put); ...
    (comp.lang.java.programmer)
  • Re: Weak/Soft references?
    ... Hash: SHA1 ... |> map, which you keep as ... | indefinitely even if there is no other references to a list element. ... Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org ...
    (comp.lang.java.programmer)
  • Re: Cryptographic Functions
    ... how does the pass phrase map to ... The passphrase should be derived using a KDF. ... Also, assuming that a strong Hash Function is being used, then it is ... Information Assurance Certification Review Board ...
    (Pen-Test)
  • Re: Two questions about split and map in a cookbook recipe
    ... home) to produce a record structure from items in a text file. ... what is the map doing in the last line, ... the newline since the. ... If a list is assigned to a hash variable (in this ...
    (perl.beginners)