一部のデータを有効期間中キーに関連付ける必要があるため、WeakHashMap
. ただし、さらに、対応する値でキーを取得する必要があります。これを行う簡単な方法は、値を作成するときに参照を保持することです。
public class Key {}
public class Value {
final public Key key;
public Value(Key k) {
key = k;
}
}
もちろん、Value
プログラムで使用している間key
は消えません。ただし、キーまたはその値への参照がマップ外になくなった場合、ガベージ コレクションは行われますか? それとも、値に残っている強力な参照がそれを妨げていますか?