Java中HashTable和HashMap的区别
来源:互联网 发布:域名com cn top net 编辑:程序博客网 时间:2024/06/08 09:11
关于Java中HashTable和HashMap的区别:
1、继承:
HashTable继承自Dirctionary,HashMap继承自AbstractMap,二者均实现了Map接口;
2、线程安全性:
HashTable的方法是同步的,即是线程安全的。HaspMap的方法不是同步的,不是线程安全的的。在多线程并发的情况下,我们可以直接使用HashTable,如果要使用HashMap,就需要自行对HashMap的同步处理。
3、键值:
HashTable中不允许有null键和null值,HashMap中允许出现一个null键,可以存在一个或者多个键的值都为null。程序中,对于HashMap,如果使用get(参数为键)方法时,返回结果为null,可能是该键不存在,也可能是该键对应的值为null,这就出现了结果的二义性。因此,在HashMap中,我们不能使用get()方法来查询键对应的值,应该使用containskey()方法。
4、遍历:
这两个在遍历方式的实现不同。HashTable和HashMap两者都实现了Iterator。但是,由于历史原因,HashTable还使用了Enumeration。
5、哈希值:
HashTable是直接使用对象的hashCode。HashMap是重新计算hash值。
6、扩容:
HashTable和HashMap的底层实现的数组和初始大小和扩容方式。HashTable初始大小为11,并且每次扩容都为:2*old+1。HashMap的默认大小为16,并且一定是2的指数,每次扩容都为old*2。
阅读全文
1 0
- java中hashmap和hashtable的区别
- java中hashmap和hashtable的区别
- Java中HashTable和HashMap的区别
- java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- java中hashMap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中HashMap和HashTable的区别
- Java中HashMap和HashTable的区别 .
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中HashMap和HashTable的区别
- java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- 初试docker-compose
- 最大容积--Container With Most Water of leetcode
- 算法题/丑数
- Gson使用中遇到的Date格式问题
- 意识、思维、大脑、环境
- Java中HashTable和HashMap的区别
- Java文件重命名
- HTML5-vue.js
- linux学习之旅(二十一(下))&Apache
- 基本数据类型的对象
- PAT 乙级 1011
- Hdu6144 Arithmetic of Bomb(2017百度之星程序设计大赛
- Leetcode 115 Distinct Subsequences
- htonl() htons()及inet_ntoa() inet_addr()的用法