[Java笔试面试知识点自整理系列]HashMap,HashTable的区别
来源:互联网 发布:网络分层结构 编辑:程序博客网 时间:2024/06/05 14:11
a) HashMap是HashTable的轻量级实现(非线程安全实现)。HashMap允许空(null)键(key)值(value),而HashTable不允许。
b) HashMap把HashTable的contains方法去掉了,改成了containsvalue和containsKey
c) HashMap是Java1.2引进的Mapinterface的一个实现,而HashTable则继承自Dictionary类。
d) HashMap是非线程安全的,不支持线程的同步,需要提供额外的同步机制;
HashTable是线程安全的,不需要开发人员对其进行同步;
就效率而言,HashMap可能要高于HashTable。
e) HashMap使用Iterator;HashTable使用Enumeration。
HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。
f) HashMap中,hash数组的默认大小是16(一定是2的指数);
HashTable中,hash数组默认大小是11,增加方式是old x 2 + 1。
0 0
- [Java笔试面试知识点自整理系列]HashMap,HashTable的区别
- [Java笔试面试知识点自整理系列]Java线程中run和start方法的区别
- [Java笔试面试知识点自整理系列]Struts1与Struts2的区别
- 面试系列-HashTable与HashMap的区别
- Java笔试题:HashMap和HashTable的区别
- Java HashMap Hashtable 的区别
- 【笔记整理】hashMap和hashtable的区别
- Java知识点Vector和ArrayList,Hashtable和HashMap,ArrayList和LinkedList的区别
- java面试知识点整理之web系列
- java面试知识点整理之扩展系列
- Java 的Hashtable和HashMap的区别
- Java的HashMap和HashTable的区别
- Java中的HashTable和HashMap的区别
- Java入门:Hashtable和HashMap的区别
- java中hashmap和hashtable的区别
- java中hashmap和hashtable的区别
- Java中HashTable和HashMap的区别
- java中hashmap和hashtable的区别
- 士兵杀敌 1-5
- 在苹果上安装Homebrew - 苹果的Package Manager
- C++实现生成1—10000之间的10000个不重复的随机数
- Java 内存区域与内存溢出异常
- Cppcheck 1.54 C/C++静态代码分析工具
- [Java笔试面试知识点自整理系列]HashMap,HashTable的区别
- 开源任务管理平台TaskManagerV2.0介绍及升级说明
- MSSQL复习笔记
- 开闭原则
- HTTP::Daemon, accept(), get_request(), send_file_response()
- YYWebImage工作原理介绍-----下载单张图片
- 设置系统状态栏样式分析
- [IOS 开发] 获取局域网IP
- 面向对象-四大内部类