Java中的WeakHashMap與類示例

Tybyq發表於2018-12-07

在本文中,我們將 WeakHashMap  透過示例從java.util包中 學習   類。

我們將學到什麼?

  1. WeakHashMap  課程概述

  2. WeakHashMap   類構造方法摘要

  3. WeakHashMap   類構造方法

  4. 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類方法

Java中的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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章