Java中的WeakHashMap与类示例

在本文中,我们将 WeakHashMap  通过示例从java.util包中 学习   类。

我们将学到什么?

  1. WeakHashMap  课程概述

  2. WeakHashMap   类构造方法摘要

  3. WeakHashMap   类构造方法

  4. WeakHashMap   类示例

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类方法

WeakHashMap-class-diagram.png

  •   void clear()  -   从此映射中删除所有映射。

  • boolean containsKey(Object key)   - 如果此映射包含指定键的映射,则返回true。

  •   boolean containsValue(Object value)   - 如果此映射将一个或多个键映射到指定值,则返回true。

  •   Set<     Map.Entry<K,V>>entrySet()   - 返回此映射中包含的映射的Set视图。

  • 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,项目 名称:员工 管理 系统,
           项目 说明:员工 管理 系统 ]


请注意,key1为null,其条目将被删除并进行垃圾回收。 快乐的编码!


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31557424/viewspace-2284562/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31557424/viewspace-2284562/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值