map的实现类
|----Map:双列数据,用于存储key-value对的数据 -----类似于高中的函数 y=f(x)
-
|----HashMap:作为Map的主要实现类;线程不安全,效率高:存储null的key和value
-
|----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。
-
原因:在原有的HashMap底层结构的基础上,添加了一对指针,指向前一个和后一个元素
-
对于频繁的遍历操作,此类执行效率高于HashMap。
-
|----TreeMap 保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序和定制排序
-
|----hashtable:作为古老的实现类:线程安全,效率低 不能存储null的key value
-
|----Properties 常用来处理配置文件。key和value都是String类型
-
HashMap的底层:数组+链表(jdk7及之前)
-
数组+链表+红黑树(jdk8后)红黑树为了提升效率
-
面试题
-
1、 HashMap:的底层原理 ↑
-
2、 HashMap和Hashtable的异同
-
3、CurrentHashMap 与Hashtable的异同