欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HashMap与HashTable的区别(含源码分析)

程序员文章站 2022-06-29 12:08:36
...
HashMap HashTable
HashMap中的hash数组的默认大小是16,而且一定是2的指数。 HashTable中hash数组默认大小是11,增加的方式是 old*2+1
HashMap非同步的(异步) HashTable的方法是同步的
HashMap允许null值(key和value都可以,但只允许一个) HashTable不允许null值(key和value都不可以)
HashMap循环使用Iterator HashTable循环使用Enumeration
HashMap不是线程安全的 HashTable是线程安全的一个Collection
HashMap继承自AbstractMap类 Hashtable继承自Dictionary类

 

相同点:都是无序排列的,都实现了Map接口。

 

HashMap与HashTable的区别(含源码分析)
            
    
    博客分类: JAVA 乔乐共享 乔乐共享纵观千象学习永无止境每天进步一点点 

 

 

部分源码:

HashMap:
public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>,

private static final int DEFAULT_SIZE = 16;

public Object clone() {


Hashtable:
public class Hashtable<K, V> extends Dictionary<K, V> implements Map<K, V>,

public Hashtable() {
        this(11);
    }

public synchronized Object clone() {