HashMap、HashTable、ConcurrentHashMap

来源:互联网 发布:用vb编写九九乘法表 编辑:程序博客网 时间:2024/06/11 02:02

区别:
1、HashMap是非synchronized的,HashTable是synchronized的。

2、HashMap可以接受null值(key=null,value=null),HashTable不可以。

3、HashMap的Iterator迭代器是fail-fast的,而Hashtable的enumerator迭代器不是fail-fast的。

所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。

4、ConcurrentHashMap是HashTable的替代者,具有更好的扩展性。

原创粉丝点击