>网站服务器>服务器租用>宝塔面板服务器租用HashMap和Has.. 免费发布服务器租用信息
广告
热门浏览

宝塔面板服务器租用HashMap和HashTable的选择

更新时间:2018-10-29 16:15:17 信息编号:234320135
宝塔面板服务器租用HashMap和HashTable的选择
600≥ 1台
  • 600.00 元

  • intel

  • 机架式

  • 宝塔面板服务器,高防服务器租用,享大带宽,单机超级防御

分享

详情介绍

服务项目
宝塔面板服务器,高防服务器租用,享大带宽,单机超级防御
面向地区
全国
品牌
intel
服务器类型
机架式
CPU类型
I5
内存类型
DDR3
CPU核心
四核
OEM
标配CPU个数
1个
标配硬盘转速
10000转
磁盘阵列
RAID5
货源类别
现货
结构
1U
硬盘容量
500GB
支持内存容量
4GB
质保
一年
大CPU个数
1个
类型
其它

宝塔面板服务器租用HashMap和HashTable的选择

宝塔面板服务器租用HashMap和HashTable的选择

高防服务器租用 请联系:锐辉网络--小敏 :..........................................2853898501

关于编程中HashMap和HashTable的选择问题,我们可以先看看下面这些问题。
历史问题
Hashtable是个过时的集合类,是基于陈旧的Dictionary类的,并且存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分,而HashMap是Java 1.2引进的Map接口的一个实现。

同步问题
HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。

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

key值问题
HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。

效率问题
由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。

元素顺序
HashMap不能随着时间的推移Map中的元素次序是不变的。

HashMap同步
HashMap可以通过下面的语句进行同步:
Map m = Collections.synchronizeMap(hashMap);

术语解释
sychronized
sychronized意味着在一次仅有一个线程能够更改Hashtable。就是说任何线程要更新Hashtable时要获得同步锁,其它线程要等到同步锁被释放之后才能再次获得同步锁更新Hashtable。

fail-fast and fail-safe
关于fail-fast and fail-safe,可以参考这篇文章Fail Fast vs Fail Safe

总结
在目前的编程中基本上可以不用HashTable了,在不要求线程安全的情况下直接使用HashMap,效率比较高;如果,要求线程安全,则使用ConcurrentHashMap来代替HashMap。

相关推荐产品

留言板

  • 宝塔面板服务器高防服务器租用享大带宽单机超级防御
  • 价格商品详情商品参数其它
  • 提交留言即代表同意更多商家联系我
东莞市锐辉网络有限公司为你提供的“宝塔面板服务器租用HashMap和HashTable的选择”详细介绍,包括宝塔面板服务器价格、型号、图片、厂家等信息。如有需要,请拨打电话:18316411879。不是你想要的产品?点击发布采购需求,让供应商主动联系你。
“宝塔面板服务器租用HashMap和HashTable的选择”信息由发布人自行提供,其真实性、合法性由发布人负责。交易汇款需谨慎,请注意调查核实。
留言询价
×