WeakHashMap 是 Java 集合框架中的一種 Map 集合實現類,它繼承自 AbstractMap 類,并實現了 Map 接口。WeakHashMap 與 HashMap 類似,都是用于存儲鍵值對的集合,但它的特點是對于不再被引用的鍵(key),會被自動移除。
WeakHashMap 的特點如下:
弱引用鍵:WeakHashMap 使用的是弱引用來保存鍵值對中的鍵,當某個鍵不再被引用時,WeakHashMap 會自動將其移除。
不保證順序:WeakHashMap 不保證鍵值對的順序,其迭代順序可能是任意的。
線程不安全:WeakHashMap 是非線程安全的,如果多個線程同時訪問并修改 WeakHashMap,可能會導致不可預期的結果。
性能較差:由于 WeakHashMap 使用了弱引用,因此在頻繁增刪鍵值對的情況下,性能會相對較差。
WeakHashMap 的用法如下:
Map<Key, Value> map = new WeakHashMap<>();
map.put(key1, value1);
map.put(key2, value2);
...
Value value = map.get(key);
map.remove(key);
boolean containsKey = map.containsKey(key);
WeakHashMap 主要用于內存敏感的緩存場景,當某個對象不再被其他對象引用時,會被自動從 WeakHashMap 中移除,有助于節省內存空間。