hashmap与hashtable的区别
时间: 2023-11-24 14:43:22 浏览: 89
hashmap与hashtable区别
1. 线程安全性:Hashtable是线程安全的,而HashMap不是。在并发环境中,Hashtable会通过同步来保证线程安全,但是这会带来性能问题。而HashMap是非线程安全的,但是在单线程环境中可以提供更好的性能。
2. null值:Hashtable不允许key或value为null,否则会抛出NullPointerException。而HashMap允许key和value为null。
3. 继承关系:Hashtable是基于Dictionary类实现的,而HashMap继承自AbstractMap类。
4. 迭代器:Hashtable的迭代器是Enumeration,而HashMap的迭代器是Iterator。
5. 初始容量和扩容机制:Hashtable默认的初始容量是11,而HashMap默认的初始容量是16。Hashtable在扩容时会将容量扩大为原来的两倍加一,而HashMap在扩容时会将容量扩大为原来的两倍。
6. 性能:由于Hashtable在并发环境中需要同步来保证线程安全,因此在并发环境中性能会受到影响。而HashMap在单线程环境中性能更好。
阅读全文