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 中移除,有助于节省内存空间。