Skip to content

Latest commit

 

History

History
27 lines (23 loc) · 1.53 KB

WeakHashMap.md

File metadata and controls

27 lines (23 loc) · 1.53 KB
tags title
Java, Basic, Collections, Map, WeakHashMap
WeakHashMap

WeakHashMap<K, V>

Про слабые ссылки. Класс WeakHashMap является реализацией интерфейса Map, который хранит только слабые ссылки в качестве ключей. Это позвоялет сборщику мусора удалять элемент структуры в том случае, если на ключ элемента типа “ключ – значение” за пределами таблицы никто не ссылается. Хранит данные используя хеш-таблицу. Каждое значение представляет из себя вложенный класс Entry<K, V> и у него есть ссылка на следующий элемент, если у них совпадают хеш-коды.

Конструкторы

  • WeakHashMap()
  • WeakHashMap(Map<? extends K, ? extends V> m)
  • WeakHashMap(int initialCapacity)
  • WeakHashMap(int initialCapacity, float loadFactor) - loadFactor указывает коэффициент заполнения. По умолчанию 0.75 (от 0.0 до 1.0)

Пример

WeakHashMap<String, Integer> map = new WeakHashMap<>();

map.put(new String("one"), 1);
map.put(new String("two"), 2);
map.put(new String("three"), 3);

System.out.println(map.size()); // 3
Runtime.getRuntime().gc();
System.out.println(map.size()); // 0