集合类体系结构

image.png

Map集合概述

现实生活中,很多数据是成对存在的,比如:IP地址与主机名,身份证号与个人,学生与学号等。
这种一一对应的关系,叫做映射。java中提供了Map集合 ,用于保存具有映射关系的数据,称为双列集合

Map集合的特点: Map

Map是一种键值对集合,每一个元素都包含一个 键对象(key)和一个值对象(value)
Map集合中,键不允许重复,值可以重复。(比如身份证与姓名)
键和值是一一对应的,通过键可以找到与之对应的唯一的值。

Map接口的常用实现类

HashMap

底层采用的哈希表结构,元素的存取无序。(HashSet的底层其实是借助了HashMap实现存储)
要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

TreeMap

TreeMap集合底层的数据结构是红黑树;可以对元素的键进行排序。
排序方式有两种:自然排序,比较器排序。(键的排序规则与TreeSet一样)

Map集合的基本功能

image.png

Map的遍历方式1:键找值方式

通过元素中的键,获取键所对应的值
分析步骤:

  1. 获取Map中所有的键,方法提示: keySet()
  2. 遍历键的Set集合,得到每一个键
  3. 根据键,获取键所对应的值。方法提示: get(K key)

image.png

image.png

Map.Entry接口

Map中将每个键和值封装成一个个的Entry对象,
并提供 getKey() 和 getValue() 方法,用于获取Entry中封装的键和值

Map遍历方式2:键值对方式

1、获取map集合中所有Entry对象的集合: entrySet()方法。
2、遍历Entry的集合,获取每个Entry对象。
3、使用 Entry 提供的方法获取键和值:getKey() getValue()

image.png

image.png

HashMap

HashMap的特点

HashMap底层是哈希表结构+链表/红黑树
依赖hashCode方法和equals方法保证的唯一。
如果要存储的是自定义对象,需要重写hashCode和equals方法。

TreeMap

TreeMap的特点

TreeMap是Map里面的一个实现类。
TreeMap底层是红黑树结构;可以对元素的进行排序。
排序方式有两种:Comparable自然排序, Comparator比较器排序。

TreeMap的排序

自然排序:使用无参构造器创建TreeMap集合,存入集合的键需要实现Comparable接口。
比较器排序:使用带参构造器创建TreeMap集合,传入Comparator接口的实现类。

TreeMap小结

TreeMap底层是红黑树结构的
依赖自然排序或者比较器排序,对进行排序
排序方式
方式1:键实现Comparable接口。
方式2:通过TreeMap构造方法传入Comparator接口的实现类。