Mega Code Archive

 
Categories / Java / Collections Data Structure
 

To enable automatically release of the value, the value must be wrapped in a WeakReference object

import java.lang.ref.WeakReference; import java.util.Iterator; import java.util.Map; import java.util.WeakHashMap; public class Main {   public static void main(String[] argv) throws Exception {     Object keyObject = "";     Object valueObject = "";     Map weakMap = new WeakHashMap();     weakMap.put(keyObject, valueObject);     WeakReference weakValue = new WeakReference(valueObject);     weakMap.put(keyObject, weakValue);     Iterator it = weakMap.keySet().iterator();     while (it.hasNext()) {       Object key = it.next();       weakValue = (WeakReference) weakMap.get(key);       if (weakValue == null) {         System.out.println("Value has been garbage-collected");       } else {         System.out.println("Get value");         valueObject = weakValue.get();       }     }   } }