您的位置:首页 > 编程语言 > Java开发

关于HashTable和HashMap的区别

2017-12-08 18:48 225 查看
今天面试问到一个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
方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息