1、线程安全性?
HashTable 是线程安全的,它的所有方法都是同步的,因此可以在多线程环境下使用。
HashMap不是线程安全的,如果想要使用线程安全的可以使用Collections.synchronizedMap()
方法将其包装为线程安全的版本,或者使用 ConcurrentHashMap
。
2、性能
HashTable需要进行同步,所以性能比较差
HashMap性能较好
3、null 值(笔试常有)
HashTable不允许有null值
HashMap的key可以有一个null,值可以有多个null
4、继承体系
HashTable是基于早期的 Dictionary
类实现的,这是一个遗留类。
HashMap 是 Map
接口的一个实现,并且作为 Java Collections Framework
的一部分。
5、迭代器
HashTable 是基于早期的 Dictionary
类实现的,这是一个遗留类。
HashMap 是 Map
接口的一个实现,并且作为 Java Collections Framework
的一部分。