一.相同点:
- 都是双列集合,一个键对应一个值
- 都是键不能重复,但是值可以重复的
二.不同的:
- 出现的版本区别: HashMap是JDK1.2版本出现的;Hashtable是JDK1.0版本出现的
- 线程同步的区别: HashMap是线程不同步的;Hashtable是线程同步的
- 存储数据的区别: HashMap可以存储null键null值;Hashtable不能存储null键null值
三:应用的场景:
- 双列集合优先使用HashMap集合
- 如果是多线程的场景下,也不需要使用Hashtable集合,我们可以使用ConcurrentHashMap集合,这个集合是一个线程同步的!
- Hashtable集合虽然使用不多,但是它有一个子类,Properties集合还在大量使用中,一般配合IO流进行加载配置文件!