浅谈HashMap与HashTable
来源:互联网 发布:2017 大数据 大会 编辑:程序博客网 时间:2024/06/05 04:58
最近去面试,面试官问了我一个问题,HashMap与HashTable有什么区别?我当时一脸懵B,没能完整答上来。于是,我整理了此文。
HashMap与HashTable的区别:
- HashMap是线程不安全的,HashTable是线程安全的,它的内部方 法基本都是synchronized
- HashMap的键和值都是允许为null的,而HashTable则不行
- 因为HashMap是线程安全的,所以它比HashTable的效率高
那问题来了,什么是线程安全,什么又是线程不安全呢?
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得的数据是脏数据。
HashMap与HashTable的底层实现是什么呢?
HashMap与 HashTable的内部存储结构都采用了相同的存储机制—哈希表(散列表)。二者的实现基本一致。
采用哈希表的好处是:这种数据结构综合了数组和链表的优点,所以具有较快的查询速度,以及相对较快的增删速度,很适合在海量数据的环境中使用。
想要深入了解HashMap与HashTable的内部实现机制,请参考终点大神的深入解析HashMap、HashTable
0 0
- 浅谈HashMap与HashTable
- 浅谈HashMap的原理及其与HashTable、HashSet的区别
- 浅谈hashmap 以及其与hashtable,currenthashmap区别
- hashtable与hashmap
- HashMap 与 Hashtable
- HashMap 与HashTable 区别
- Hashtable与HashMap
- HashTable与HashMap
- Hashtable与hashmap 比较
- HashMap与HashTable区别
- HashMap与HashTable
- Hashtable与HashMap区别
- HashMap与HashTable区别
- Hashtable与hashmap 比较
- hashTable与HashMap区别
- Hashtable与HashMap
- HashMap与HashTable区别
- HashMap与Hashtable区别
- 删除链表中重复元素
- 错误集锦
- Activity finish()与OnDestroy()的区别
- 需求评审五个维度框架分析及其带来的启示-2-框架原理
- maven setting.xml 中国配置
- 浅谈HashMap与HashTable
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- 找规律___zxa and set(hdu 5680 BestCoder Round #83)
- BZOJ4411——[Usaco2016 Feb]Load balancing
- C++ map的基本操作和使用
- 监听webview显示完毕事件
- ubuntu上安装elasticsearch遇到的坑
- 关于自由移站法及坐标转换模型的综述
- SDUT 2054 双向链表