双列集合:
1.双列集合一次需要存一对数据,分别为键和值
2.键不能重复,值可以重复
3.键和值是一一对应的,每一个键只能找到自己对应的值
4.键+值这个整体我们称之为"键值对",在Java中叫做"Entry对象"
目录
1.Map接口
1.概述
Map是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用的
2.常见方法
a.添加元素
注意:在添加数据的时候,如果键不存在,那么直接把键值对对象添加到map集合当中,如果键是存在的,那么会把原有的键值对对象覆盖,并把被覆盖的值进行返回
b.根据键删除键值对元素
注意: 将键值对对象删除,并将删除的对象的值返回
c.移除所有的键值对元素
d.判断集合是否包含指定的键
e.判断集合是否包含指定的值
f.判断集合是否为空
e.集合的长度
3.遍历方式
a.键找值
1.获取所有的键,把这些键放到一个单列集合当中
2.遍历单列集合,得到每一个键
3.利用map集合中的get方法获取对应的值
b.键值对
1.通过一个方法获取所有的键值对对象,返回Set集合
2.遍历Set集合,得到每一个键值对对象
3.通过键值对对象调用getKey,getValue方法获得键和值
c.Lambda表达式
2.HashMap集合
1.概述
1.HashMap是Map里面的一个实现类
2.特点都是由键决定的:无序、不重复、无索引
3.HashMap跟HashSet底层原理是一模一样的,都是哈希表结构
2.底层原理
1.HashMap底层是哈希表结构的
2.依赖hashCode方法和equals方法保证键的唯一
3.如果键存储的是自定义对象,需要重写hashCode和equals方法;如果值存储自定义对象,不需要重写hashCode和equals方法
3.LinkedHashMap集合
1.概述
LinkedHashMap是Java中的一个类,它继承自HashMap,实现了Map接口。它的特点是维护了一个双向链表,记录了插入元素的顺序,因此支持按插入顺序或访问顺序(可选)进行迭代。
2.底层原理
底层数据结构依然是哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序
4.TreeMap集合
1.概述
TreeMap是Java中的一种基于红黑树实现的映射表,按键的自然顺序或指定的比较器排序。
2.指定排序规则
1.实现Comparable接口,指定排序规则
2.创建集合时传递Comparator比较器对象,指定比较规则