说说Hashtable与HashMap的区别

    技术2022-05-19  25

    HashMap   继承自AbstractMap,实现Map接口HashTable   继承自java.util.Dictionary(注:此类已过时。新的实现应该实现 Map 接口,而不是扩展此类。),实现Map接口

    除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同

     

    一些区别1.   是否可以让key为null

    HashMap:

    public V put(K key, V value) { if (key == null) // 如果空值交给对应的方法处理 return putForNullKey(value);  

    HashTable:

    public synchronized V put(K key, V value) { // Make sure the value is not null if (value == null) { throw new NullPointerException(); // 如果空值则空指针异常 }

    2. 从上面也可以看出,HashTable所有的设计同步的方法均有synchronize锁定

    3. HashMap继承自AbstractMap,AbstractMap的本意是实现Map的大部分骨干功能,为了其子类减压。但是实际上大部分子类继承后覆盖了其中的大部分方法。


    最新回复(0)