码迷,mamicode.com
首页 > 其他好文 > 详细

Hashtable-HashMap

时间:2017-05-16 13:08:07      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:映射   实现原理   jvm   多线程   优点   asp   线程   比较   fast   

Hashtable和HashMap的异同

1 HashMap类出现之前,jdk中存在一个和他同样采用哈希表储存方式,同样实现键值映射的集合类Hashtable。两个实现原理相同,功能相同,很多情况可以互用。

Hashtable和HashMap的区别如下

1 Hashtable继承自Dictionary类,而HaspMap实现了Map接口。

2 Hashtable是线程安全的,占用资源比较多,速度比较慢。而HashMap是线程非非安全的,在多线程中需要手动管理线程同步,他的优点在于速度比较快,不重安全。

Hashtable不许有null值(ke和value)都不允许,HasbMap允许有null值(ke和value)都可以,开发当中最好用HashMap

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

Hashtable-HashMap

标签:映射   实现原理   jvm   多线程   优点   asp   线程   比较   fast   

原文地址:http://www.cnblogs.com/liuxingzhi/p/6860556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!