Wenn Sie Guava vorschlagen, würde new MapMaker().weakKeys().makeMap()
den Job direkt ausführen, da weakKeys
die Referenzgleichheit für Schlüssel verwendet.
Die Dokumentation von weakKeys
sagt:
Gibt an, dass jeder in der Map gespeicherte Schlüssel (kein Wert) in eine WeakReference eingebettet werden soll (standardmäßig werden starke Referenzen verwendet). Warnung: Wenn diese Methode verwendet wird, verwendet die resultierende Karte einen identity (==) -Vergleich, um die Gleichheit der Schlüssel zu ermitteln, was eine technische Verletzung der Map-Spezifikation darstellt und möglicherweise nicht Ihren Erwartungen entspricht.
Tags und Links java android map weak-references referenceequals