HashMap和Hashtable的区别
2019-02-18 本文已影响0人
reco171
HashMap和Hashtable(ConcurrentHashMap)的区别
- HashMap是非synchronized,而Hashtable是synchronized,所以HashMap线程安全的。java5,ConcurrentHashMap代替HashTable
- 迭代器不同
HashMap的迭代器(Iterator)是fail-fast迭代器,同样也是Enumeration和Iterator的区别。主要区别:
(1) java中的集合类都提供了返回Iterator的方法,就是迭代器,它和Enumeration的主要区别其实就是Iterator可以删除元素,但是Enumration却不能。
(2)还有一点要注意的就是,使用Iterator来遍历集合时,应使用Iterator的remove()方法来删除集合中的元素,使用集合的remove()方法将抛出ConncurrentModificationException异常。
Enumeration已经不是主流,Iterator是它的下一代替代品
参考:
HashMap和Hashtable的区别
Enumeration和Iterator的区别