Sök…


Introduktion

Begrepp om svag Hashmap

Begrepp av WeakHashmap

Nyckelord:-

  • Implementering av karta.
  • lagrar bara svaga referenser till dess nycklar.

Svaga referenser : Objekten som endast hänvisas till av svaga referenser är skräp som samlas in ivrigt; GC kommer inte att vänta tills den behöver minne i så fall.

Skillnad mellan Hashmap och WeakHashMap: -

Om Java-minneshanteraren inte längre har en stark referens till det objekt som anges som en nyckel, kommer posten på kartan att tas bort i WeakHashMap.

Exempel: -

public class WeakHashMapTest {
    public static void main(String[] args) {
        Map hashMap= new HashMap();
        
        Map weakHashMap = new WeakHashMap();
        
        String keyHashMap = new String("keyHashMap");
        String keyWeakHashMap = new String("keyWeakHashMap");
        
        hashMap.put(keyHashMap, "Ankita");
        weakHashMap.put(keyWeakHashMap, "Atul");
        System.gc();
        System.out.println("Before: hash map value:"+hashMap.get("keyHashMap")+" and weak hash map value:"+weakHashMap.get("keyWeakHashMap"));
        
        keyHashMap = null;
        keyWeakHashMap = null;
        
        System.gc();  
        
        System.out.println("After: hash map value:"+hashMap.get("keyHashMap")+" and weak hash map value:"+weakHashMap.get("keyWeakHashMap"));
    }

Storleksskillnader (HashMap vs WeakHashMap):

Metoden för samtalstorlek () på HashMap-objektet returnerar samma antal nyckelvärdespar. storleken minskar endast om metoden remove () anropas uttryckligen på HashMap-objektet.

Eftersom avfallssamlaren kan kasta nycklar när som helst, kan en WeakHashMap bete sig som om en okänd tråd tyst tar bort poster. Så det är möjligt för storleksmetoden att returnera mindre värden över tid. Så, i WeakHashMap-storlek sker minskning automatiskt .



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow