HashMap 和 HashTable 的区别
来源:互联网 发布:who生长曲线软件 编辑:程序博客网 时间:2024/05/16 07:05
HashMap工作原理:通过一个数组实现,存储结构(数组+链表),存储的元素包含KEY,value及指向自身的next指针,每个数组中存储的是一个链表(解决Hash冲突),并基于hash实现的,对KEY进行hash后,然后对数组长度求余,得到数组下标。
区别:
1、HashTable是基于Dictionary类,HashMap是基于AbstractMap的
2、HashMap的KEY和value都允许是null但不同步,HashTable不允许null但支持同步
专业解释:
HashMap 是Hashtable 的轻量级实现(非线程安全的实现),都完成了Map 接口
主要区别:
1、HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
2、HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。
3、HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey。因为contains
方法容易让人引起误解。
4、Hashtable 继承自Dictionary 类,而HashMap 是Java1.2 引进的Map interface 的一个实现。
5、(最大的不同)Hashtable 的方法是Synchronize 的,而HashMap 不是,在多个线程访问
Hashtable 时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable 和HashMap 采用的hash/rehash 算法都大概一样,所以性能不会有很大的差异。
- 什么是HashTable?HashMap和HashTable的区别
- HashTable和HashMap的区别
- HashTable和HashMap的区别
- Hashtable和HashMap的区别
- HashTable和HashMap的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap的区别
- HashTable和HashMap的区别
- HashTable和HashMap的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap的区别
- Hashtable和HashMap的区别
- HashTable和HashMap的区别
- HashMap和Hashtable的区别
- hashtable和hashmap的区别
- hashtable 和 hashmap的区别
- HashTable和HashMap的区别
- HashTable和HashMap的区别
- 面试题27:二叉搜索树按中序遍历原地转换为双向链表
- C# 微软源码
- LeetCode 349. Intersection of Two Arrays
- iPhone/iPad调整事件递交 endIgnoringInteractionEvents
- java 集合详解
- HashMap 和 HashTable 的区别
- CMTime详解-AVFoundation视频操作必备基础
- 多线程断点续传下载
- 网站性能优化--Yahoo军规
- java集合详解
- PHP 安 全——编 程 建 议
- unity android 退出异常 google play game services
- androidstudio中如何将单独的model形式的library转换成一个单独的工程!
- 开源翻墙软件Shadowsocks作者宣布停止项目更新