文章目录
Map
1.1 Map集合的概述和使用
Map集合的概述
-
Interface Map<K,V> K: 键的类型; V:值的类型;
-
将键映射到值的对象; 不能包含重复的键;每个键可以映射到最多一个值
-
举例:学生的学号和姓名
- cs0001 张三丰
- cs0002 李连杰
- cs0003 周星驰
创建集合的对象
- 多态的方式
- 具体的实现类HashMap
public class MapDemo01 {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();//HashMap重写了toString方法用=拼接
//V put(K key, V value)将指定的值与该映射中的指定的键相关联
map.put("cs0001","张三丰");
map.put("cs0002","林黛玉");
map.put("cs0003","陈大帅");
System.out.println(map);//{cs0002=林黛玉, cs0003=陈大帅, cs0001=张三丰}
//输出集合对象
System.out.println(map);
//{cs0002=林黛玉, cs0003=陈大帅, cs0001=张三丰}
//{cs0002=林黛玉, cs0003=张无忌, cs0001=张三丰}
//V put 可以用来添加和修改,二次添加相当于覆盖前一个值,也就是修改
}
}
1.2 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() | 集合的长度,也就是集合中键值对的个数 |
1.3Map集合的获取功能
方法名 | 说明 |
---|---|
V get(Object key) | 根据键获取值 |
Set keySet() | 获取所有键的集合 |
Collection values() | 获取所有值的集合 |
Set<Map.Entry<K,V>> entrySet() | 获取所有键值对对象的集合 |
public class MapDemo02 {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();
//添加元素
map.put("杨过","小龙女");
map.put("郭靖","黄蓉");
map.put("黄晓明","杨颖");
/* //V get(Object key) 根据键获取值
System.out.println(map.get("杨过"));
System.out.println(map.get("哈哈哈"));
//小龙女
//null*/
/* //Set<K> keySet():获取所有键的集合
Set<String> set = map.keySet();
for (String s : set){
System.out.println(s);
}
//杨过
//郭靖
//黄晓明*/
//Collection<V> values():获取所有值的集合
Collection<String> values = map.values();
for (String v : values){
System.out.println(v);
}
//小龙女
//黄蓉
//杨颖
}
}
1.4 Map集合的遍历(方式1)
我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
遍历思路:
- 把所有的丈夫都集中起来
- 遍历丈夫的集合,获取到每一个丈夫
- 根据丈夫去找对应的妻子
转换为Map集合中的操作:
- 获取所有键的集合。用KeySet()方法实现
- 遍历键的集合,获取到每一个键。用增强for实现
- 根据键去找值。用get(Object key)方法实现
public class MapDemo03 {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String, String>();
//添加元素
map.put("杨过","小龙女");
map.put("张三丰","张无忌");
map.put("李小龙","李国豪");
//获取所有键的集合。用KeySet实现
Set<String> keySet = map.keySet();
//遍历集合
for (String key : keySet){
String value = map.get(key);
System.out.println(key+","+value);
}
}
}
------------------
杨过,小龙女
李小龙,李国豪
张三丰,张无忌
1.5 Map集合的遍历(方式2)
我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
遍历思路:
- 获取所有结婚证的集合
- 遍历结婚证的集合,得到每一个结婚证
- 根据结婚证获取丈夫和妻子
转换为Map集合中的操作:
-
获取所有键值对对象的集合
- Set<Map.Entry<K,V>> entrySet(): 获取所有键值对对象的集合
-
遍历所有键值对对象的集合,得到每一个键值对对象
用增强for实现,得到每一个Map.Entry