Java集合框架-Map接口-概述
Map接口继承树
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPnJmdsdkYzBnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxMjN1IjMzcTM1IDNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Map接口的子类实现
- Map:双列数据,存储key-value对的数据
- HashMap:作为Map的主要实现类,线程不安全的,效率高,存储null的key和value
- LinkedHashMap:保证遍历Map元素时,可以按照添加的顺序实现遍历。
- 原因:在原有的HashMap底层基础上,添加了一对指针prev和next,指向前一个和后一个元素
- 对于频繁的遍历操作,LinkedHashMap的效率高于HashMap
- LinkedHashMap:保证遍历Map元素时,可以按照添加的顺序实现遍历。
- HashMap的底层
- 数组+链表(jdk7)
- 数组+链表+红黑树(jdk8)
- TreeMap:保证按照添加的tree-value对进行排序,实现按照key排序遍历。(使用的是key的自然排序和定制排序
- TreeMap底层使用的是红黑树
- Hashtable:作为古老的Map接口的实现类,线程安全的,效率低,不能存储null的key和value
- Properties:常用来处理配置文件。key和value都是String类型
- HashMap:作为Map的主要实现类,线程不安全的,效率高,存储null的key和value
Map接口的描述
- Map中key是无序,不能重复的,value无序,可重复的。key无序,value无序
- key使用Set存储,无序,不可重复的。–》要求HashMap中的key所在的类要重写equals()和hashCode()方法,TreeMap的话则需要定义自然排序或者定制排序
- value使用collection存,无序的,可以重复的。----》value所在的类要重写equals()
- 一个键值对:key-value构成了一个Entry对象
- Map中的Entry对象:无序的,不可重复的,使用Set存储所有的entry
Map接口:常用方法
- 添加、删除、修改操作:
- Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中