HashMap和HashTable的区别

1、线程安全性不同
HashMap是非线程安全的,HashMap中的方法在缺省情况下是非synchronize的,适用于单线程的环境下,如果多线程的时候可以采用concurrent并发包下面的concurrentHashMap
HashTable是线程安全的,当中的方法是synchronize的,在多线程并发的环境下可以直接使用HashTable

2、继承的父类不同
HashMap继承自Dictionary类
HashTable继承自AbstractMap类
(都继承了Map接口)

3、contains方法
HashMap中没有contains方法,取而代之的是containsKey和containsValue
HashTable中保留了contains,containsValue和containsKey方法(contains和containsValue是同样功能的)
注:containsValue用于判断是否有value,containsKey判断是否有key

4、key和value是否允许null值
HashMap null可以作为key,但是只能有一个这样的key,null可以作为value,可以多个value都是null
HashTable key和value都不允许出现null值,但是如果在HashTable中有null作为key和value,编译也会通过(key,value都是Object类型),但是运行的是否会抛出NullPointerException异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值