关于HashTable和HashMap的区别

今天面试问到一个HashMapHashTable的区别,这里来总结一下:

首先哈希表由数组+链表组成,一个长度为16的数组中,每个元素存储的是一个链表的头结点.而HashMap和HashTable就是哈希表结构


1.继承类不同:

HashMap继承AbstractMap

HashTable继承Dictionary


2.:put方法对key和value的要求不同

HashMap允许Entry的key或value为null

HashTable不允许Entry的Key或Value为null,

否则出现NullPointerException


3.执行效率不同:

HashMap是非线程安全的,是HashTable的轻量级实现,效率高

HashTable是线程安全的,效率较低.


4.有无contains方法

HashMap没有contains方法

HashTable由contains方法


还有为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode 方法和 equals 方法

为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。



你可能感兴趣的:(错误笔记)