Szukaj…


Wprowadzenie

Koncepcje słabej Hashmapy

Koncepcje WeakHashmap

Kluczowe punkty:-

  • Wdrożenie mapy.
  • przechowuje tylko słabe odniesienia do swoich kluczy.

Słabe referencje : Obiekty, do których odwołują się tylko słabe referencje, są chętnie usuwane; GC nie będzie czekać, aż w takim przypadku będzie potrzebować pamięci.

Różnice między Hashmap i WeakHashMap: -

Jeśli menedżer pamięci Java nie ma już silnego odwołania do obiektu określonego jako klucz, wpis na mapie zostanie usunięty w WeakHashMap.

Przykład: -

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"));
    }

Różnice wielkości (HashMap vs WeakHashMap):

Wywołanie metody size () na obiekcie HashMap zwróci tę samą liczbę par klucz-wartość. rozmiar zmniejszy się tylko wtedy, gdy metoda remove () zostanie wywołana jawnie na obiekcie HashMap.

Ponieważ śmieciarz może odrzucić klucze w dowolnym momencie, WeakHashMap może zachowywać się tak, jakby nieznany wątek po cichu usuwa wpisy. Jest więc możliwe, że metoda size zwraca z czasem mniejsze wartości, więc w WeakHashMap zmniejszenie rozmiaru następuje automatycznie .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow