HashTable, HashMap, ConcurrentHashMap 之间的区别

1. 一句话总结

  • HashMap:最快,但不是线程安全

  • HashTable:线程安全,但很慢(基本不用了)

  • ConcurrentHashMap:又快又线程安全(推荐用这个)

2. 简单对比

对比项 HashMap HashTable ConcurrentHashMap
线程安全 不安全 安全 安全
速度快吗 最快 最慢 很快
能放null吗 可以 不能 不能
现在用得多吗 单线程常用 基本不用 多线程常用

3. 如何选择

情况1:只有你一个人用程序

选 HashMap

→ 因为最快

java 复制代码
Map<String, String> map = new HashMap<>();
map.put("姓名", "张三");
map.put(null, "可以放null");  // ✔ HashMap允许null

情况2:很多人同时用程序

选 ConcurrentHashMap

→ 因为又快又安全

java 复制代码
Map<String, String> map = new ConcurrentHashMap<>();
map.put("姓名", "张三");
// map.put(null, "值");  // ✘ 不能放null键

情况3:不要选 HashTable

太老了,速度慢

有更好的替代品(ConcurrentHashMap)

java 复制代码
Map<String, String> map = new Hashtable<>();  // 别用!
相关推荐
2301_780789664 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
第九序言T4 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
学长毕设5 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn5 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川6 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵6 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
程序喵大人6 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
秋天的怀念_David6 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1006 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin7 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php