一、概述
1、Map集合是一种双列集合,每个元素包含两个数据
2、Map集合的每个元素格式:Key value
3、Map集合也被称为键值对集合
Map集合是键值对集合
Map集合非常适合做购物车这种业务场景
适应最对的Map集合时HashMap
二、Map集合体系的特点
1、Map集合的特点都是由键决定的
2、Map集合的键时无序的,不重复的,无索引的,值不做要求(可重复)
3、Map集合后面重复的键对应的值会覆盖前面重复键的值
4、Map集合的键值对都可以为null
三、Map集合实现类的特点
1、HashMap:元素按照键是无序,不重复,无索引,值不做要求(与Map体系一致)
2、LinkedHashMap:元素按照键是有序的,不重复的,无索引的,值不做要求
3、TreeMap:元素按照键是排序的,不重复的,无索引的
----------------------------------------------------------------------------------------------------------------
Map集合
Map是双列集合的祖宗接口,它的功能是全部双列集合都可以继承使用
一、Map集合的遍历方式
1、键找值
先获取Map集合的全部键的set集合
遍历键的set集合,然后把这些键放到一个单列集合中
(2)先把Map集合转换成Set集合,Set集合中每个元素都是键值对的实体类型
遍历Set集合,然后提取键以及提取值
(3)得益于JDK8开始的新技术,Lambda表达式,提供了一种更简单、更直接的遍历方式
二、
1、HashMap的特点
(1)HashMap是Map里面的一个实现类,特点都是由键决定的,无序、不重复、无索引
(2)没有额外需要学习的特有方法,直接使用Map里面的方法就可以
(3)HashMap跟HashSet底层原理一样,都是哈希表结构,只是HashMap的每个元素包含两个值而已
实际上:Set系列集合的底层就是Map实现的,只是Set集合中的元素只要键数据,不需要值数据而已
2、HashMap的特点和底层原理
(1)由键决定、无序、不重复、无索引,HashMap底层是哈希表结构
(2)依赖HashcCode方法和equals方法保证键的唯一
(3)如果键要存储的是自定义对象,需要重写HashCode和equals方法
(4)基于哈希表,增删改查性能都比较好
3、TreeMap集合概述和特点
(1)由键决定,不重复,无索引,可排序
(2)可排序:按照键数据的大小,默认排序(从小到大),只能对键排序
注意:TreeMap集合是一定要排序的,可以默认排序,也可以按照指定的规则进行排序
(3)TreeMap和TreeSet原理一样
TreeMap集合自定义排序规则有两种:
(1)类实现Comparable接口,重写比较规则
(2)集合自定义Comparator比较器对象,重写比较规则
注意两者均出现时,遵循第二个定义的规则