每日一题(三)

题目:

请说说HashMap和Hashtable的区别。

分析:

网上有很多讲述这个内容的帖子,有的把来龙去脉讲述的清楚,有的只是断章取义。现在从jdk文档里发掘他们的关系。

解答:

HashMap继承如下:

java.lang.Object

——java.util.AbstractMap<K,V>

————java.uitl.HashMap<K,V>

Hashtable继承如下:

java.lang.Object

——java.uitl.Dictionary<K,V>

————java.util.Hashtable<K,V>

可以看出两个类的父类不同。Hashtable继承的是老的Dictionary类,HashMap继承的是AbstractMap类。Hashtable的方法是Synchronize的,而HashMap的不是。当多个线程访问Hashtable时,不需要为它的方法实现同步,而HashMap必须为之提供同步(在我其他类别的博客里我会专门写一个例子,这边外同步就不做多说)。

两个类均实现了的接口:Serializable,Cloneable,Map<K,V>

来让我们看看他们的方法:

重要的方法:put(K key, V value),get(Object key),remove(Object key, V value),size().(增、取、删、取长)

一些明显的字眼:Set视图,Collection视图,默认加载因子(0.75),这些字眼听说过但是从来没有深入研究过(以后有机会会对他们进行分析与解释)。

还有一个重要的Hashtable的子类Properties类,在平常出现的次数比较多。可以保存到文件中。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值