`

HashMap和HashTable的区别?

阅读更多
HashMap是HashTable的轻量级实现(非线程安全的实现),它们都实现了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上高于HashTable。
HashMap hm = new HashMap();
hm.put(null, null);
Hashtable ht = new Hashtable();
ht.put(null, null); // java.lang.NullPointerException

我们看一下源代码
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();
	}


Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics