千家信息网

HashMap和Hashtable有什么区别

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章给大家分享的是有关HashMap和Hashtable有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hashtable是线程安全,而HashMap则非线程安
千家信息网最后更新 2025年02月07日HashMap和Hashtable有什么区别

这篇文章给大家分享的是有关HashMap和Hashtable有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

  • Hashtable是线程安全,而HashMap则非线程安全

    • Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步

  • HashMap可以使用null作为key,而Hashtable则不允许null作为key

  • HashMap是对Map接口的实现,HashTable实现了Map接口Dictionary抽象类

  • HashMap的初始容量为16,Hashtable初始容量为11,两者的填充因子默认都是0.75

    • HashMap扩容时是当前容量翻倍即:capacity*2,

    • Hashtable扩容时是容量翻倍+1即:capacity*2+1

  • 两者计算hash的方法不同

    • static int hash(int h) {        // This function ensures that hashCodes that differ only by        // constant multiples at each bit position have a bounded        // number of collisions (approximately 8 at default load factor).        h ^= (h >>> 20) ^ (h >>> 12);        return h ^ (h >>> 7) ^ (h >>> 4);    } static int indexFor(int h, int length) {        return h & (length-1);    }


    • int hash = key.hashCode();int index = (hash & 0x7FFFFFFF) % tab.length;


    • Hashtable计算hash是直接使用key的hashcode对table数组的长度直接进行取模

    • HashMap计算hash对key的hashcode进行了二次hash,以获得更好的散列值,然后对table数组长度取摸

    • HashMap和Hashtable的底层实现都是数组+链表结构实现

感谢各位的阅读!关于"HashMap和Hashtable有什么区别"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

容量 数组 线程 安全 内容 接口 方法 更多 篇文章 长度 不同 不错 实用 关键 关键字 因子 底层 文章 看吧 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全是什么重要组成部门 部落服务器推荐 计算机网络技术的组成部分 皮甲数据库 达梦数据库获取字段类型 数字新时代网络安全 湖南服务器维修价格表 clay粘土服务器陨落 杭州快象网络技术有限公司 mysql数据库设计文档 网络安全事件报告处置制度 赏金赛为什么显示连接服务器失败 网络安全培训班 线下班 阿里云服务器宝塔面板打不开 开数据游戏怎么还连接不到服务器 医院信息网络安全分析与解决措施 工业互联网东土科技最新消息 近年热门的网络技术 海外独立服务器租用 中国四大神兽网络技术 连接数据库时出现2058 数据库自建还是上云 mchinabox怎么加服务器 软件开发企业 注册资本 做头条广告一定要服务器吗 浙江智慧养老管理平台软件开发 hud系统软件开发 电力信息网络安全招标技术要求 俄罗斯网络安全投入 湖北新一代网络技术服务标准
0