1.Map集合概述和特点:
Map集合概述:
Interface Map
将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值
举例:学生的学号和姓名
aynu001 郭小龙
aynu002 杨大康
aynu003 张大峰
创建Map集合对象
多态的方式
具体的实现类HashMap
package com.aynu;
//测试类
import java.util.HashMap;
import java.util.Map;
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
Map map=new HashMap();
//V put (K key, V value) 将指定的值与该映射中的指定键相关联
map.put("aynu001","郭小龙");
map.put("aynu002","杨大康");
map.put("aynu003","张大峰");
map.put("aynu003","张洞");
System.out.println(map);
}
}
{aynu001=郭小龙, aynu002=杨大康, aynu003=张洞}
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() | 集合的长度,也就是集合中键值对的个数 |
package com.aynu;
//V put(K key,V value) 添加元素
//V remove(Object key) 根据键删除键值对元素
//void clear() 移除所有的键值对元素
//boolean containsKey(Object key) 判断集合是否包含指定的键
//boolean containsValue(Object value) 判断集合是否包含指定的值
//boolean isEmpty() 判断集合是否为空
//int size() 集合的长度,也就是集合中键值对的个数
import java.util.HashMap;
import java.util.Map;
public class MapDemo1 {
public static void main(String[] args) {
//创建集合对象Map
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 containsValue(Object value) 判断集合是否包含指定的值
// System.out.println(map.containsValue("黄蓉"));
// System.out.println(map.containsValue("杨康"));
//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 com.aynu;
//V get(Object key) 根据键获取值
//Set keySet() 获取所有键的集合
//Collection values() 获取所有值的集合
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo2 {
public static void main(String[] args) {
//创建集合对象Map
Map map =new HashMap();
//V put(K key,V value) 添加元素
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);
}
}
}
小龙女
黄蓉
赵敏
5.Map集合的遍历(1)
我们刚才存储的的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
遍历思路:
把所有的丈夫给集中起来
遍历丈夫的集合,获取到每一个丈夫
根据丈夫去找对应的妻子
转换为Map集合中的操作
获取所有键的集合,用keySet方法实现
遍历键的集合,获取到每一个键。用增强for循环
根据键去找值。用get(Object key)方法实现
package com.aynu1;
//获取所有键的集合,用keySet方法实现
//遍历键的集合,获取到每一个键。用增强for循环
//根据键去找值。用get(Object key)方法实现
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
Map map=new HashMap();
//添加元素
map.put("张无忌","赵敏");
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
//获取所有键的集合,用keySet方法实现
Set set = map.keySet();
//遍历键的集合,获取到每一个键。用增强for循环
for (String s:set){
//根据键去找值。用get(Object key)方法实现
String value = map.get(s);
System.out.println(s+","+value);
}
}
}
杨过,小龙女
郭靖,黄蓉
张无忌,赵敏
Map集合的遍历(2)
我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
遍历思路:
获取所有结婚证的集合
遍历结婚证的集合,得到每一个结婚证
根据结婚证获取丈夫和妻子
转换为Map集合中的操作
获取所有键值对对象的集合
Set
遍历键值对对象的集合,得到每一个键值对对象
用增强for实现,得到每一个Map.Entry
根据键值对对象获取键和值
用getKey()得到键
用getValue()得到值
package com.aynu1;
//获取所有键值对对象的集合
//Set>entrySet():获取所有键值对对象的集合
//遍历键值对对象的集合,得到每一个键值对对象
//用增强for实现,得到每一个Map.Entry
//根据键值对对象获取键和值
//用getKey()得到键
//用getValue()得到值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo1 {
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){
//根据键值对对象获取键和值
//用getKey()得到键
String key = me.getKey();
//用getValue()得到值
String value = me.getValue();
System.out.println(key+","+value);
}
}
}
杨过,小龙女
郭靖,黄蓉
张无忌,赵敏