千家信息网

Java中WeakHashMap如何使用

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,Java中WeakHashMap如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. WeakHashMap类概述WeakHa
千家信息网最后更新 2025年01月31日Java中WeakHashMap如何使用

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

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

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

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

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

  • void forEach(BiConsumer action) - 对此映射中的每个条目执行给定操作,直到处理完所有条目或操作引发异常。

  • V get(Object key) - 返回指定键映射到的值,如果此映射不包含键的映射,则返回null。

  • boolean isEmpty() - 如果此映射不包含键 - 值映射,则返回true。

  • Set keySet() - 返回此映射中包含的键的Set视图。

  • V put(K key, V value) - 将指定值与此映射中的指定键相关联。

  • void putAll(Map m) -将指定映射中的所有映射复制到此映射。

  • V remove(Object key) - 如果存在,则从此弱哈希映射中删除键的映射。

  • void replaceAll(BiFunctionfunction) - 将每个条目的值替换为在该条目上调用给定函数的结果,直到所有条目都已处理或函数抛出异常。

  • 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如何使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

条目 地图 系统 因子 容量 函数 方法 视图 问题 项目 相同 信息 内存 员工 垃圾 密钥 对象 更多 收集器 同步 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发学校好还是培训班好 华为中国运营商网络技术部 华夏银行科技部软件开发中心 锦州网络安全执法 前后端分离如何操作数据库 网络安全高级技师资格证报考条件 思科软件开发第一章考试 石湾网络安全价格 一开始我以为是服务器负载太大了 网站后台服务器配置 莫言宝可梦服务器下载 软件开发的基本流程概述 暗黑2绑定后还能改服务器吗 火影忍者端游服务器满了怎么注册 北京博瑞皓宇网络技术有限公司 哈密互联网科技有哪些 南阳一霖网络技术怎么样 疫情网络技术工作周报 在哪里查数据库的答案 广州数据网络技术开发分类 泛微网络安全知识 iis文件服务器管理 2018网络安全教育测试 维护网络安全小方法ppt 相册服务器 项目数据库系统解决方案概述 明日之后第三季红杉镇服务器 中国网络安全法律缺失 数据库中间库自动扩展 td是什么网络技术
0