HashMap和Hashtable 有什么区别?
什么 区别 HashMap hashtable
2023-09-11 14:15:23 时间
JDK 1.8 中 HashMap 和 Hashtable 主要区别如下:
- 线程安全性不同。HashMap线程不安全;Hashtable 中的方法是Synchronize的。
- key、value是否允许null。HashMap的key和value都是可以是null,key只允许一个null;Hashtable的key和value都不可为null。
- 迭代器不同。HashMap的Iterator是fail-fast迭代器;Hashtable还使用了enumerator迭代器。
- hash的计算方式不同。HashMap计算了hash值;Hashtable使用了key的hashCode方法。
- 默认初始大小和扩容方式不同。HashMap默认初始大小16,容量必须是2的整数次幂,扩容时将容量变为原来的2倍;Hashtable默认初始大小11,扩容时将容量变为原来的2倍加1。
- 是否有contains方法。HashMap没有contains方法;Hashtable包含contains方法,类似于containsValue。
- 父类不同。HashMap继承自AbstractMap;Hashtable继承自Dictionary。
深入的细节,可以参考:
来一道刷了进BAT的面试题?
相关文章
- GC是什么? 为什么要有GC?
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
- maven是什么?
- eclipse中output folder和deployment assembly用法有什么不同?
- 数据的无量纲化处理和标准化处理的区别是什么
- 关于O/R Mapping的思考,我们应该选择什么?
- Java中的LongAdder和AtomicLong有什么区别?
- Java中活锁和死锁有什么区别?
- jquery中的attr()和prop()的区别是什么?
- SAP BOPF和ESF2这两个框架有什么区别
- Spartacus 项目中 .env-cmdrc 文件的作用是什么?
- 什么是 SAP Spartacus UI 的 code deprecation
- SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别
- 什么是前端开发领域的 Cumulative Layout Shift 问题
- java中的NIO和IO到底是什么区别?20个问题告诉你答案
- 【华为云技术分享】云原生到底是什么?这回终于有人讲明白了
- 什么是零代码?零代码与低代码有什么联系与区别?
- Http 和TCP的关系,TCP长连接和短连接有什么区别?
- 【快来投票】除了外卖滴滴,35岁之后你还能做什么行业
- 服务器===集群和分布式的区别是什么?
- golang 中, os.exit() runtime.Goexit() return 有什么区别
- 【JS】typeof和instanceof的区别是什么?
- 苹果 Apple Watch 在测量人体血糖方面取得突破性进展,可实现无创、持续血糖监测,意味着什么
- 浏览器和 Node 中的事件循环有什么区别?
- axios和ajax的区别是什么
- 微服务与 API有什么区别?
- C语言编译成功后生成后缀名为.o文件是什么文件?