hashtable与HashMap区别

看到了很多的面试题集里都有这么一个题:HashMap和Hashtable的区别,自己也看了好几遍了,总是不记得,写下来当是一次笔记吧.
区别一它们的父类不同
public class Hashtable<K,V>
    extends Dictionary<K,V>
    implements Map<K,V>, Cloneable, java.io.Serializable
public class HashMap<K,V>
    extends AbstractMap<K,V>
    implements Map<K,V>, Cloneable, Serializable
首先们看到Hashtable和HashMap的声明上就可以现前者是Dictionary的子类,而HashMap是AbstractMap的子类,但它们都实现了Map接口,并且都进行了序列化声明;

区别二前者是同步的,其性能要比后者差
如Hashtable的put方法
    public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) {
    throw new NullPointerException();
前者的方法大部分都进行了同步;

区别三,上面put方法中可以看出Hashtable中不允许null-->null的一个映射.
另外网上有人说的Hashtable有分类或排序,我还是没有弄明白是什么意思.如果有知道的朋友那就请教一下你咯,谢谢!

类似的还有一个HashSet,其实HashSet就是一个Hashtable的一个封装.只利用了Hashtable的Key部分,value全部用private static final Object PRESENT = new Object();来填充的.

转载于:https://www.cnblogs.com/lilyzhang/archive/2009/10/04/1577974.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值