关于HashTable和HashMap的区别
2017-12-08 18:48
225 查看
今天面试问到一个HashMap和HashTable的区别,这里来总结一下:
首先哈希表由数组+链表组成,一个长度为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方法
还有为了成功地在哈希表中存储和获取对象,用作键的对象必须实现
为了成功地在哈希表中存储和获取对象,用作键的对象必须实现
首先哈希表由数组+链表组成,一个长度为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方法。
相关文章推荐
- 关于HashMap和HashTable的区别
- 关于Hashtable和HashMap的区别 -- Java 基础
- 关于hashtable与hashmap的区别
- 关于hashmap和hashtable的区别,及如何使hashmap变得线程安全?(除了synchronized)---concurrentHashmap
- 关于HashMap、HashTable、LinkHashMap、TreeMap的区别
- 关于HashMap和Hashtable的区别
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
- HashMap和Hashtable的区别
- HashTable和HashMap的区别
- 数据存储——HashMap,Hashtable的区别
- HashMap和Hashtable的区别 源码分析
- Hashtable 和 HashMap之间的区别
- Vector与 ArrayList、Hashtable 与 HashMap、ArrayList 与 LinkedList的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap区别(面试)
- HashMap和HashTable的区别
- HashMap和Hashtable的区别
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
- 有关HashMap和Hashtable的区别简易分析
- ArrayList和Vector以及HashTable和HashMap区别