HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap之间的区别-yellowcong
来源:互联网 发布:砍价源码 编辑:程序博客网 时间:2024/05/22 21:07
这些Map集合在面试中,经常会被问道和考到,所以总结一下,HashMap和Hashtable的区别在于1、多线程;2、主键是否为空;3、继承的父类
通过Collections.synchronizedMap()的方法,将Map集合变成线程安全的。
1 HashMap和Hashtable的区别
这个问题,可能和String与StringBuffer,StringBuilder一样经常被人问道,这个问题的标准答案,基本上是三点,
1.1 继承的父类
HashMap继承的是AbstractMap类
Hashtable继承的的是Dicionary类
1.2 线程安全
HashMap是非线程安全的(效率比较的高)
Hashtable是线程安全的(效率相对比较低)
1.3 Key值是否可以存在null
HashMap可以允许为空
大家可以发现如果是空的key ,先判断一下HashMap的第一个Bucket,也就是第一个Entry<K,V>
(HashMap和Hashtable中,都维护的是一个Entry<K,V>[]
链表数组)中是否存在,如果存在就修改值,如果不存在,就添加这个值(添加的位置是第一个 Bucket里面)。
Hashtable是不允许存在空的key
2、LinkedHashMap
基于链表的数据结构
LinkedHashMap继承了HashMap,实现了Map接口
3、TreeMap
基于Tree 数据结构的集合
4、ConcurrentHashMap
这个是无锁多线程编程所提供的一个集合组合,是基于cpu层面的CAS原子操作,用到这个操作,只需要在取队列元素和添加队列元素的时候利用CAS原子操作,就可以保证多个线程对队列元素的有序存取
阅读全文
0 0
- HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap之间的区别-yellowcong
- HashTable,HashMap,LinkedHashMap,TreeMap之间的区别。
- LinkedHashMap、HashMap、HashTable、TreeMap、ConcurrentHashMap的比较
- HashMap、Hashtable、LinkedHashMap 和TreeMap之间的区别
- JAVA HashMap,LinkedHashMap,TreeMap,HashTable 的区别
- HashMap、TreeMap、LinkedHashMap、hashtable的区别
- HashMap,LinkedHashMap,TreeMap,HashTable的区别
- HashMap Hashtable LinkedHashMap TreeMap的区别
- HashMap / Hashtable / LinkedHashMap / TreeMap的区别
- HashMap、TreeMap、LinkedHashMap、hashtable的区别
- HashMap,HashTable,LinkedHashMap,TreeMap的区别
- HashMap,LinkedHashMap,TreeMap,HashTable的区别
- HashMap、HashTable、LinkedHashMap和TreeMap的区别
- HashMap,LinkedHashMap,TreeMap,HashTable的区别
- HashMap、Hashtable、LinkedHashMap 和TreeMap的区别
- LinkedHashMap,HashMap,TreeMap,HashTable的区别
- HashMap、LinkedHashMap、TreeMap、HashTable的区别
- HashMap,LinkedHashMap,TreeMap,HashTable的区别
- Rxjava & Retrofit
- 在Java中System.arraycopy() 和 Arrays.copyOf()两者之间的区别?
- 百分比
- 1.1 并查集 & 最小生成树
- NSArray特殊数组对象
- HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap之间的区别-yellowcong
- 新出了一些有趣的动物技术书
- android模块化开发之aar——本地文件引用
- 如何透彻分析Java开发人员
- 判断
- 壕!程序员摆25台iPhone X求婚 闺蜜1人1台
- uva 1630 KMP判断周期串 和 区间DP 压缩字符串
- Git常用操作,最常用的都在这了
- 判断