Java Weak Hash Map - Need to remove entry based on weakness of value, not key
So the Java WeakHashMap lets one create a map whose entries are removed if its keys become weak. But how can I create a Map whose entries are removed when the values in the map become weak? The reason I want to use a map is as a Global Hash Table which keeps track of objects according to their ID's. ID ---> Object Address Key ---> Value (Where ID is a text string) I want key-value pairs to be removed when the object addresses become weak, not the Strings that point to them. Anyone any thoughts on this? Such a map is supported, for example, in Guava : Map<..., ...> m = new MapMaker().weakValues