Map集合中元素是成对存在的(可以理解为夫妻)。每个元素由键与值两部分组成,通过键可以找到对应的值
Map集合的特点:
- Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
- Map集合中的元素,key和value的数据类型可以相同也可以不同
- Map集合中的元素,key是不允许重复的,value可以重复
- Map集合中的元素,key和value是一一对应的
子类:HashMap<k,v> 集合 implements Map<k,v>接口,LinkedHashMap<k,v>集合 implement HashMap<k,v>集合
HashMap<k,v>集合特点: - HashMap集合底层是哈希表:查询速度特别快。
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表的长度超过8):提高查询速度。 - hashMap集合是一个无序的集合,存储元素和取出元素的顺序可能不一样
LinkedHashMap<k,v>集合特点: - LinkedHashMap集合底层是哈希表+链表(保证迭代顺序)
- LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
常用方法:
public v put(k key,v value); 指定的键与值添加到Map集合中。
返回值:v
存储键值对的时候,key不重复,返回的v是null
存储键值对的时候,key重复,会使用新的value替换Map中重复的value,返回被替换的
value值。
public v remove(Object key);把指定的键,对应的键值对元素 在map集合中删除,返回被删除元素的值。
返回值:v
key存在,v返回被删除的值
key不存在,v返回null
public v get(Object key) 根据指定的键,在map集合中获取对应的值。
返回值:v
key存在,返回对应的value值
key不存在,返回null
boolean containsKey(Object key) 判断集合中是否包含指定的键
包含返回true,不包含返回false
Map集合的第一种遍历方式:通过键找值的方式
Map集合中的方法:
Set keySet() 返回此映射中包含的键的Set视图。
实现步骤:
- 实现Map集合中的方法KeySet(),把Map集合所有的key取出来,存储到一个Set集合中
- 遍历Set集合,获取Map集合中的每一个key
- 通过Map集合中的方法get(key),通过key找到value
Map集合的第二种遍历方式:使用entrySet()
实现步骤: - 使用Map集合中的方法entrySet(),把map集合中的多个Entry对象取出来
- 遍历Set集合,获取每一个entry对象
- 使用entry对象中的方法getKey()和getValue(),获取键与值