首页 > 代码库 > 古代和现在的区别Hashtable和HashMap
古代和现在的区别Hashtable和HashMap
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。