hashmap 和 hashtable 有什么区别?
时间: 2023-04-25 22:04:57 浏览: 82
Hashmap 和 Hashtable 是 Java 中用于实现映射关系的两种类,它们都具有键值对的形式,但是它们在实现和使用上有一些不同。
Hashmap 是非线程安全的,允许键值为 null,性能更高。而 Hashtable 是线程安全的,键值不能为 null,性能略低于 Hashmap。
因此,如果不需要线程安全性,建议使用 Hashmap;如果需要线程安全性,则使用 Hashtable。
相关问题
HashMap和Hashtable有什么区别?
HashMap和Hashtable是Java中实现Map接口的两个类,它们都是基于哈希表实现的。它们虽然作用类似,但是在使用过程中存在以下区别:
1. 线程安全性:Hashtable是线程安全的,而HashMap不是。因为Hashtable在每个方法上都加了同步锁,而HashMap则没有。因此,HashMap的效率更高。
2. null键和null值:HashMap允许键和值都为null,但是Hashtable则不允许。
3. 继承的父类不同:Hashtable是Dictionary类的子类,而HashMap是AbstractMap类的子类。
4. 迭代器:通过HashMap的keySet()方法返回的迭代器是fail-fast迭代器,而Hashtable的keys()方法返回的迭代器不是fail-fast迭代器。
5. 初始容量和扩容方式:Hashtable默认的初始容量是11,而HashMap是16。Hashtable的扩容方式是将容量变为原来的2倍加1,而HashMap则是变为原来的2倍。
<<引用:HashMap和HashTable区别。HashMap和Hashtable都是基于哈希表实现的Map接口的实现类,但是它们采用的哈希算法和数据结构有所不同。 HashMap [^1]。引用:HashMap 与HashTable的区别。Hashtable是java发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2。HashMap已经成为应用最为广泛的一种数据类型,然而Hashtable基本上已经被弃用了,一方面虽然线程安全但是效率比较低,还有一方面可能是因为Hashtable没有遵循驼峰命名法。 2、继承的父类不同 [^2]>>
HashMap 和 Hashtable 有什么区别?
回答: HashMap和Hashtable有以下几个区别。首先,它们的继承关系不同,HashMap继承自AbstractMap类,而Hashtable继承自Dictionary类,但它们都实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口。\[2\]其次,它们对外提供的接口也不同。最后,它们的实现原理也不同。HashMap使用哈希表(Hash Table)实现,而Hashtable则使用哈希表加链表(Hash Table with Linked List)实现。由于Hashtable内部使用了链表,所以当链表较长时,性能会受到影响,而HashMap则没有这个问题。\[3\]
#### 引用[.reference_title]
- *1* *3* [HashMap和Hashtable有什么区别?](https://blog.csdn.net/cz_00001/article/details/130388048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [HashMap和HashTable的区别](https://blog.csdn.net/sinat_26552841/article/details/128523368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)