Java中的WeakHashMap與類示例
在本文中,我們將
WeakHashMap
透過示例從java.util包中
學習
類。
我們將學到什麼?
-
WeakHashMap
課程概述 -
WeakHashMap
類構造方法摘要 -
WeakHashMap
類構造方法 -
WeakHashMap
類示例
1. WeakHashMap類概述
WeakHashMap
是一個基於Hash表的
Map
介面
實現的
弱鍵。
當其金鑰不再正常使用時,將自動刪除
該條目中的條目
。
支援空值和空值。
該類具有與
HashMap
類
相似的效能特徵,
並具有與初始容量和負載因子相同的效率引數。
與大多數集合類一樣,此類不同步。
可以使用以下來構造
同步
WeakHashMap
WeakHashMap
Collections.synchronizedMap
方法。
弱引用 - 如果物件的唯一引用是弱引用,則垃圾收集器可以隨時回收物件的記憶體。
它不必等到系統記憶體不足。
通常,它將在下次垃圾收集器執行時釋放。
此類是
Java Collections Framework
的成員
。
2. WeakHashMap類建構函式
-
WeakHashMap()
-WeakHashMap
使用預設初始容量(16)和載入因子(0.75) 構造一個新的空 。 -
WeakHashMap(int initialCapacity)
-WeakHashMap
使用給定的初始容量和預設載入因子(0.75) 構造一個新的空 。 -
WeakHashMap(int initialCapacity, float loadFactor)
-WeakHashMap
使用給定的初始容量和給定的載入因子 構造一個新的空 。 -
WeakHashMap(Map< ?extends K,? extends V> m)
- 構造一個WeakHashMap
與指定對映具有相同對映 的new 。
3. WeakHashMap類方法
-
void clear()
- 從此對映中刪除所有對映。 -
boolean containsKey(Object key)
- 如果此對映包含指定鍵的對映,則返回true。 -
boolean containsValue(Object value)
- 如果此對映將一個或多個鍵對映到指定值,則返回true。 -
Set<
Map.Entry<K,V>>entrySet()
- 返回此對映中包含的對映的Set檢視。 -
void forEach(BiConsumer<? super K,? super V> action)
- 對此對映中的每個條目執行給定操作,直到處理完所有條目或操作引發異常。 -
V get(Object key)
- 返回指定鍵對映到的值,如果此對映不包含鍵的對映,則返回null。 -
boolean isEmpty()
- 如果此對映不包含鍵 - 值對映,則返回true。 -
Set keySet()
- 返回此對映中包含的鍵的Set檢視。 -
V put(K key, V value)
- 將指定值與此對映中的指定鍵相關聯。 -
void putAll(Map<? extends K,? extends V> m)
- 將指定對映中的所有對映覆制到此對映。 -
V remove(Object key)
- 如果存在,則從此弱雜湊對映中刪除鍵的對映。 -
void replaceAll(BiFunction<? super K,? super V,? extends V>function)
- 將每個條目的值替換為在該條目上呼叫給定函式的結果,直到所有條目都已處理或函式丟擲異常。 -
int size()
- 返回此對映中鍵 - 值對映的數量。 -
Collection values()
- 返回此對映中包含的值的Collection檢視。
4. WeakHashMap類示例
如我們所知,當一個條目中的條目
不再被外部引用並且金鑰到期時,它將被自動刪除。
在這個例子中,我們建立了兩個鍵 - key1和key2 - 值為“ACTIVE”和“INACTIVE”。
現在,使key1為null並執行該程式。
輸出應該是單個條目:
WeakHashMap
匯入 java。util。地圖 ;
匯入 java。util。地圖。進入 ;
匯入 java。util。WeakHashMap ;
公共 類 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”);
地圖。put(key1,new Project(100,“Customer Management System”,“Customer Management System”));
地圖。put(key2,new Project(200,“Employee Management System”,“Employee Management System”));
key1 = null ;
系統。gc();
為(最終 條目< 鍵,專案> 條目:地圖。的entrySet()){
系統。出。的println(條目。資訊getKey()。資訊getKey()+ “” + 條目。的getValue());
}
}
}
class Key {
私有 String 鍵 ;
public Key(final String key){
super();
這個。key = key ;
}
public String getKey(){
返回 鍵 ;
}
public void setKey(final String key){
這個。key = key ;
}
}
輸出:
INACTIVE [ 專案 編號:200,專案 名稱:員工 管理 系統,
專案 說明:員工 管理 系統 ]
請注意,key1為null,其條目將被刪除並進行垃圾回收。 快樂的編碼!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2284562/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java引用型別與WeakHashMapJava型別HashMap
- java中的類與物件Java物件
- java中的抽象類與介面Java抽象
- Java中,類與類,類中的程式碼執行順序Java
- Java中的類與物件詳解Java物件
- 關於Java異常的分類示例Java
- 死磕 java集合之WeakHashMap原始碼分析JavaHashMap原始碼
- Java中類與物件的關係與區別Java物件
- Java中的類繼承與多型Java繼承多型
- Java中的介面與抽象類詳解Java抽象
- 類與介面(三)java中的介面與巢狀介面Java巢狀
- java中String類常用方法的使用與例項Java
- Java中的介面與抽象類設計原則Java抽象
- Java 中JDK7時間類與JDK8中的時間類JavaJDK
- PHP 中,pack 與 unpack 的使用示例。PHP
- Java中抽象類與介面的區別Java抽象
- Java正規表示式的語法與示例Java
- Java超類與子類Java
- WeakHashMap,原始碼解讀HashMap原始碼
- java學習:Java中的其它類Java
- java中的內部類Java
- Java中的包裝類Java
- Java 8 中的 Random 類Javarandom
- Java庫中的LocalDate類JavaLDA
- Java中的Reference類使用Java
- Java的抽象類與介面理解Java抽象
- Java類與匿名內部類Java
- Python中的類與物件Python物件
- Java-物件與類Java物件
- Java - 11 類與物件Java物件
- Java中的類反射機制Java反射
- Java中Object類的常用方法JavaObject
- Java中Scanner類的常用方法Java
- Java中String類的常用方法Java
- Java中StringBuffer類的常用方法Java
- Java中Integer類的基本方法Java
- Calendar類在Java中的應用與日期時間處理Java
- Java與眾不同的字串-String類Java字串