Map接口:双列数据,存储key—value对的数据
??|-----HashMap:Map接口的主要实现类;线程不安全,效率高;可以存储null的key和value
????|-----LinkedHashMap:遍历map元素时,可以按照添加的顺序实现遍历
??|-----TreeMap:按照添加的key—value对进行排序,实现排序遍历,此时考虑key的自然排序和定制排序
??|-----Hashtable:古老的实现类;线程安全,效率低;不能储存null的ley和value
????|-----Properties:常用来处理配置文件,key和value都是String类型
注意:
-
HashMap的底层:
数组+链表(jdk7及以前)
数组+链表+红黑树(jdk8)
-
Map的结构:以hashMap为例
2.1 key:无序,不可重复的,使用Set储存(key所在的类型要重写equals()和hashCode()方法)
2.2 value:无序,可重复,使用Collection储存(value所在的类要重写equals()方法)
2.3 entry:无序,不可重复的,使用Set储存