Java中WeakHashMap如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联公司基于分布式IDC数据中心构建的平台为众多户提供成都多线机房 四川大带宽租用 成都机柜租用 成都服务器租用。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类方法
void clear()
- 从此映射中删除所有映射。boolean containsKey(Object key)
- 如果此映射包含指定键的映射,则返回true。boolean containsValue(Object value)
- 如果此映射将一个或多个键映射到指定值,则返回true。Set<
Map.Entry
-返回此映射中包含的映射的Set视图。>entrySet() 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,项目 名称:员工 管理 系统,
项目 说明:员工 管理 系统 ]
关于Java中WeakHashMap如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联-成都网站建设公司行业资讯频道了解更多相关知识。
分享文章:Java中WeakHashMap如何使用-创新互联
本文网址:http://lswzjz.com/article/dpsheh.html