猫头鹰的深夜翻译:WeakHashMap
本文简介
WeakHashMap类概览WeakHashMap类构造器总结WeakHashMap类构造方法WeakHasjMap类使用举例
1. WeakHashMap类概览
WeakHashMap是一个实现了Map接口,并且键为weak型的哈希表。WeakHashMap中的条目不再被正常使用时,会被自动删除。它的键值均支持null。这个类类似于HashMap类,也具有初始容量和负载因子这样的效率参数。和绝大多数的集合类一样,这个类不是同步的。需要使用Collections.synchronizedMap方法来进行同步控制。弱引用–如果一个对象只有一个弱引用,那么垃圾回收期可以随时收回该对象的内存。它不需要等到系统内存不足时才回收。通常,它的内存会在下一次垃圾收集器运行时释放。
2. WeakHashMap的构造器
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
3. 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。
4. WeakHashMap类使用示例
1 | import java.util.Map; |
输出:
1 | INACTIVE [project id : 200, project name : Employee Management System, |