Map集合概述
- Interface Map
K:键的类型;V:值得类型 - 将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值
- 举例:学生的学号和姓名
- 001 张三
- 002 李四
- 003 王五
- 多态的方式
- 具体的实现类HashMap
package Map01;
import java.util.HashMap;
import java.util.Map;
public class MapDemo01 {
public static void main(String[] args) {
//创建Map集合的对象
Map map = new HashMap();
//V put (K key,V value) 将指定的值与该映射中的指定键相关联
map.put("001", "张三");
map.put("002", "李四");
map.put("003", "王五");
map.put("003", "赵六");
//输出集合对象
System.out.println(map);
}
}
2、Map集合的基本功能
| 方法名 | 说明 |
| V put(K key,V velue) | 添加元素 |
| V remove(Object Key) | 根据键删除键值对元素 |
| void clear() | 移除所有的键值对元素 |
| boolean containsKey(Object key) | 判断集合是否包含指定的键 |
| boolean containsValue(Object value) | 判断集合是否包含指定的值 |
| boolean isEmpty() | 判断集合是否为空 |
| int size() | 集合的长度,也就是集合中键值对的个数 |
package Map01;
import java.util.HashMap;
import java.util.Map;
public class MapDemo02 {
public static void main(String[] args) {
//创建集合对象
Map map = new HashMap();
//V put(K key,V velue):添加元素
map.put("张无忌","赵敏");
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
//V remove(Object Key):根据键删除键值对元素
// System.out.println(map.remove("郭靖"));
// System.out.println(map.remove("郭襄"));//null
//void clear():移除所有的键值对元素
// map.clear();
//boolean containsKey(Object key):判断集合是否包含指定的键
// System.out.println(map.containsKey("郭靖"));//true
// System.out.println(map.containsKey("郭襄"));//false
//boolean containsValue(Object value):判断集合是否包含指定的值
// System.out.println(map.containsValue("黄蓉"));//true
// System.out.println(map.containsValue("郭襄"));//false
//boolean isEmpty():判断集合是否为空
// System.out.println(map.isEmpty());
//int size():集合的长度,也就是集合中键值对的个数
System.out.println(map.size());
//输出集合对象
System.out.println(map);
}
}
3、Map集合的获取功能
| 方法名 | 说明 |
| V get(Object key) | 根据键获取值 |
| Set | 获取所有键的集合 |
| Collection | 获取所有值的集合 |
| Set | 获取所有键值对对象的集合 |
package Map01;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo03 {
public static void main(String[] args) {
//创建集合对象
Mapmap=new HashMap();
//添加元素
map.put("张无忌","赵敏");
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
//V get(Object key) 根据键获取值
System.out.println(map.get("张无忌"));
System.out.println(map.get("张三丰"));//null
//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);
}
}
}
4、Map集合的遍历方式(方式1)
遍历思路
- 获取所有键的集合。用keySet()方法实现
- 遍历键的集合,获取到每一个键。用增强for实现
- 根据键去找值。用get(Object key)方法实现
package Map02;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDome01 {
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);
}
}
}
5、Map集合的遍历方式(方式2)
遍历思路
- 获取所有键值对对象的集合
- Set
>entrySet():获取所有键值对对象的集合
- Set
- 遍历键值对对象的集合,得到每一个键值对对象
- 用增强for实现,得到每一个Map.Entry
- 根据键值对对象获取键和值
- 用getKey()得到键
- 用getValue()得到值
package Map02;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
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);
}
}
}



