HashMap和HashTable的区别
来源:互联网 发布:手机淘宝txt 编辑:程序博客网 时间:2024/06/05 19:49
1、从时间上来说,HashMap比HashTable出现得晚一些,HashMap出现于jdk1.2,而HashTable出现于jdk1.1。
2、两个类都实现了Map、Cloneable、Serializable三个接口,但是HashMap继承的是AbstractMap类,而HashTable继承Dictionary类。
3、HashMap支持null key和null value,而HashTable不支持,直接抛出空指针异常。因为HashMap对于空键和空值有putForNullKey方法进行处理,将null的hashCode值定为了0,从而将其存放在哈希表的第0个bucket中。
4、HashMap和HashTable都使用哈希表来存储键值对。
在数据结构上是基本相同的,都创建了一个继承自Map.Entry的私有的内部类Entry,每一个Entry对象表示存储在哈希表中的一个键值对。
Entry对象唯一表示一个键值对,有四个属性:
-K key 键对象
-V value 值对象
-int hash 键对象的hash值
-Entry entry 指向链表中下一个Entry对象,可为null,表示当前Entry对象在链表尾部
有多少个键值对,就有多少个Entry对象。
HashMap/HashTable内部用Entry数组实现哈希表,而对于映射到同一个哈希桶(数组的同一个位置)的键值对,使用Entry链表来存储(解决hash冲突)。
5、HashTable默认的初始大小为11,之后每次扩充为原来的2n+1。HashMap默认的初始化大小为16,之后每次扩充为原来的2倍。初始加载因子都为0.75。
6、HashTable是线程安全的,HashMap不是。
不需要线程安全,那么使用HashMap,如果需要线程安全,那么使用ConcurrentHashMap。HashTable已经被淘汰了,不要在新的代码中再使用它。
- 什么是HashTable?HashMap和HashTable的区别
- HashTable和HashMap的区别
- HashTable和HashMap的区别
- Hashtable和HashMap的区别
- HashTable和HashMap的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap的区别
- HashTable和HashMap的区别
- HashTable和HashMap的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap的区别
- HashTable和HashMap的区别
- HashMap和Hashtable的区别
- hashtable和hashmap的区别
- hashtable 和 hashmap的区别
- HashTable和HashMap的区别
- HashTable和HashMap的区别
- PM2实用入门指南
- 深度学习之星(二):GAN之图像转换 | 公开课
- Kaggle 比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
- TensorFlow实现神经网络入门篇
- java socket调用webservice以及如何解决连接重置报错问题
- HashMap和HashTable的区别
- IT的道德与伦理:云上的资源,你我共享?
- SQLite(5) 高级用法大全
- CDH 文字安装文档
- Linux服务器安全
- centos7开启端口(永久)
- 递归之再探
- 修真院_JAVA_TASK_1
- C++文件操作(2)