WeakHashMap
類概覽WeakHashMap
類構造器總結WeakHashMap
類構造方法WeakHasjMap
類使用舉例WeakHashMap
是一個實現了Map
接口,而且鍵爲weak型的哈希表。WeakHashMap
中的條目再也不被正常使用時,會被自動刪除。它的鍵值均支持null。這個類相似於HashMap
類,也具備初始容量和負載因子這樣的效率參數。和絕大多數的集合類同樣,這個類不是同步的。須要使用Collections.synchronizedMap
方法來進行同步控制。弱引用--若是一個對象只有一個弱引用,那麼垃圾回收期能夠隨時收回該對象的內存。它不須要等到系統內存不足時纔回收。一般,它的內存會在下一次垃圾收集器運行時釋放。java
WeakHashMap()
: 構造一個新的,空的WeakHashMap
,初始容量爲16,負載因子爲0.75WeakHashMap(int initialCapacity)
: 構造一個新的,空的WeakHashMap
, 初始容量爲initialCapacity,負載因子爲0.75WeakHashMap(int initialCapacity, float loadFactor)
: 構造一個新的,空的WeakHashMap
, 初始容量爲initialCapacity,負載因子爲loadFactorWeakHashMap(Map<? extends K, ? extends V> m)
: 利用已有的map構造WeakHashMap
void clear()
: 刪除全部的條目boolean containsKey(Object key)
: 若是有該鍵,返回trueboolean containsValue(Object value)
: 若是有一個或多個value值,返回trueSet< Map.Entry<K,V>>entrySet()
: 返回鍵值視圖void forEach(BiConsumer<? super K,? super V> action)
: 對此映射中的每一個條目執行給定操做,直處處理完全部條目或操做引起異常。V get(Object key)
: 返回指定鍵映射到的值,若是此映射不包含鍵的映射,則返回null。boolean isEmpty()
: 若是此映射不包含鍵 - 值映射,則返回true。import java.util.Map; import java.util.Map.Entry; import java.util.WeakHashMap; public class WeakHashMapExample { public static void main(final String[] args) { final Map<Key, Project> map = new WeakHashMap<>(); Key key1 = new Key("ACTIVE"); final Key key2 = new Key("INACTIVE"); map.put(key1, new Project(100, "Customer Management System", "Customer Management System")); map.put(key2, new Project(200, "Employee Management System", "Employee Management System")); key1 = null; System.gc(); for (final Entry<Key, Project> entry : map.entrySet()) { System.out.println(entry.getKey().getKey() + " " + entry.getValue()); } } } class Key { private String key; public Key(final String key) { super(); this.key = key; } public String getKey() { return key; } public void setKey(final String key) { this.key = key; } }
輸出:面試
INACTIVE [project id : 200, project name : Employee Management System, project desc : Employee Management System ]
想要了解更多開發技術,面試教程以及互聯網公司內推,歡迎關注個人微信公衆號!將會不按期的發放福利哦~微信