Map集合概述
interface MapK:键的类型;V:值的类型
Map集合的特点
双列集合,一个键对应一个值
键不可以重复,值可以重复
Map集合的基本使用
- public class MapDemo01 {
- public static void main(String[] args) {
- //创建集合对象
- Map
map = new HashMap(); -
- //V put(K key, V value) 将指定的值与该映射中的指定键相关联
- map.put("itheima001","林青霞");
- map.put("itheima002","张曼玉");
- map.put("itheima003","王祖贤");
- map.put("itheima003","柳岩");
-
- //输出集合对象
- System.out.println(map);
- }
- }
方法介绍
| 方法名 | 说明 |
|---|---|
| V put(K key,V value) | 添加元素 |
| V remove(Object key) | 根据键删除键值对元素 |
| void clear() | 移除所有的键值对元素 |
| boolean containsKey(Object key) | 判断集合是否包含指定的键 |
| boolean containsValue(Object value) | 判断集合是否包含指定的值 |
| boolean isEmpty() | 判断集合是否为空 |
| int size() | 集合的长度,也就是集合中键值对的个数 |
- public class MapDemo02 {
- public static void main(String[] args) {
- //创建集合对象
- Map
map = new HashMap(); -
- //V put(K key,V value):添加元素
- map.put("张无忌","赵敏");
- map.put("郭靖","黄蓉");
- map.put("杨过","小龙女");
-
- //V remove(Object key):根据键删除键值对元素
- // System.out.println(map.remove("郭靖"));
- // System.out.println(map.remove("郭襄"));
-
- //void clear():移除所有的键值对元素
- // map.clear();
-
- //boolean containsKey(Object key):判断集合是否包含指定的键
- // System.out.println(map.containsKey("郭靖"));
- // System.out.println(map.containsKey("郭襄"));
-
- //boolean isEmpty():判断集合是否为空
- // System.out.println(map.isEmpty());
-
- //int size():集合的长度,也就是集合中键值对的个数
- System.out.println(map.size());
-
- //输出集合对象
- System.out.println(map);
- }
- }
方法介绍
| 方法名 | 说明 |
|---|---|
| V get(Object key) | 根据键获取值 |
| Set | 获取所有键的集合 |
| Collection | 获取所有值的集合 |
| Set | 获取所有键值对对象的集合 |
示例代码
- public class MapDemo03 {
- public static void main(String[] args) {
- //创建集合对象
- Map
map = new HashMap(); -
- //添加元素
- map.put("张无忌", "赵敏");
- map.put("郭靖", "黄蓉");
- map.put("杨过", "小龙女");
-
- //V get(Object key):根据键获取值
- // System.out.println(map.get("张无忌"));
- // System.out.println(map.get("张三丰"));
-
- //Set
keySet():获取所有键的集合 - // Set
keySet = map.keySet(); - // for(String key : keySet) {
- // System.out.println(key);
- // }
-
- //Collection
values():获取所有值的集合 - Collection
values = map.values(); - for(String value : values) {
- System.out.println(value);
- }
- }
- }
遍历思路
我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
把所有的丈夫给集中起来
遍历丈夫的集合,获取到每一个丈夫
根据丈夫去找对应的妻子
步骤分析
代码实现
- public class MapDemo01 {
- public static void main(String[] args) {
- //创建集合对象
- Map
map = new HashMap(); -
- //添加元素
- map.put("张无忌", "赵敏");
- map.put("郭靖", "黄蓉");
- map.put("杨过", "小龙女");
-
- //获取所有键的集合。用keySet()方法实现
- Set
keySet = map.keySet(); - //遍历键的集合,获取到每一个键。用增强for实现
- for (String key : keySet) {
- //根据键去找值。用get(Object key)方法实现
- String value = map.get(key);
- System.out.println(key + "," + value);
- }
- }
- }
遍历思路
我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
获取所有结婚证的集合
遍历结婚证的集合,得到每一个结婚证
根据结婚证获取丈夫和妻子
步骤分析
获取所有键值对对象的集合
Set
遍历键值对对象的集合,得到每一个键值对对象
用增强for实现,得到每一个Map.Entry
根据键值对对象获取键和值
用getKey()得到键
用getValue()得到值
代码实现
- public class MapDemo02 {
- public static void main(String[] args) {
- //创建集合对象
- Map
map = new HashMap(); -
- //添加元素
- map.put("张无忌", "赵敏");
- map.put("郭靖", "黄蓉");
- map.put("杨过", "小龙女");
-
- //获取所有键值对对象的集合
- Set
> entrySet = map.entrySet(); - //遍历键值对对象的集合,得到每一个键值对对象
- for (Map.Entry
me : entrySet) { - //根据键值对对象获取键和值
- String key = me.getKey();
- String value = me.getValue();
- System.out.println(key + "," + value);
- }
- }
- }