WeakHashMap
类概览WeakHashMap
类构造器总结WeakHashMap
类构造方法WeakHasjMap
类使用举例WeakHashMap
是一个实现了Map
接口,而且键为weak型的哈希表。WeakHashMap
中的条目再也不被正常使用时,会被自动删除。它的键值均支持null。这个类相似于HashMap
类,也具备初始容量和负载因子这样的效率参数。和绝大多数的集合类同样,这个类不是同步的。须要使用Collections.synchronizedMap
方法来进行同步控制。弱引用--若是一个对象只有一个弱引用,那么垃圾回收期能够随时收回该对象的内存。它不须要等到系统内存不足时才回收。一般,它的内存会在下一次垃圾收集器运行时释放。java
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构造WeakHashMapvoid 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。import java.util.Map; import java.util.Map.Entry; import java.util.WeakHashMap; public class 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"); map.put(key1, new Project(100, "Customer Management System", "Customer Management System")); map.put(key2, new Project(200, "Employee Management System", "Employee Management System")); key1 = null; System.gc(); for (final Entry<Key, Project> entry : map.entrySet()) { System.out.println(entry.getKey().getKey() + " " + entry.getValue()); } } } class Key { private String key; public Key(final String key) { super(); this.key = key; } public String getKey() { return key; } public void setKey(final String key) { this.key = key; } }
输出:面试
INACTIVE [project id : 200, project name : Employee Management System, project desc : Employee Management System ]
想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注个人微信公众号!将会不按期的发放福利哦~微信