1.1创建Map集合对象并添加元素
Map:
- 将键映射到值的对象。
- 一个映射不能包含重复的键;
- 每个键最多只能映射到一个值。
举例:
学号 | 姓名
----|----
it001 | 林青霞
it002 | 张曼玉
it003 | 王祖贤
1.1.1 案例代码
package com.itheima_01;
import java.util.HashMap;
import java.util.Map;
/*
* Map:
* 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
*
* 举例:学生的学号和姓名
* it001 林青霞
* it002 张曼玉
* it003 王祖贤
*
* public interface Map<K,V>
*
*/
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();
//添加元素
//put(K key,V value):添加元素。
map.put("it001", "林青霞");
map.put("it002", "张曼玉");
map.put("it003", "王祖贤");
//输出集合对象
System.out.println(map);
}
}
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.2.1 案例代码
package com.itheima_01;
import java.util.HashMap;
import java.util.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():返回集合中的键值对的对数
*
* Map集合中的实现类的数据结构只针对键有效。
*/
public class MapDemo2 {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();
//V put(K key,V value):添加元素
//如果键是第一次存储,就直接存储元素,返回null
//如果键不是第一次存储,就用值把以前的值替换,返回以前的值
// System.out.println("put:"+map.put("张无忌", "周芷若"));
// System.out.println("put:"+map.put("张无忌", "赵敏"));
map.put("张无忌", "赵敏");
map.put("郭靖", "黄蓉");
map.put("杨过", "小龙女");
//V remove(Object key):根据键删除键值对元素
// System.out.println("remove:"+map.remove("郭靖"));
// System.out.println("remove:"+map.remove("郭襄"));
//void clear():移除所有的键值对元素
//map.clear();
//boolean containsKey(Object key):判断集合是否包含指定的键
// System.out.println("containsKey:"+map.containsKey("郭靖"));
// System.out.println("containsKey:"+map.containsKey("郭襄"));
//boolean containsValue(Object value):判断集合是否包含指定的值 自己练习
//boolean isEmpty():判断集合是否为空
//System.out.println("isEmpty:"+map.isEmpty());
//int size():返回集合中的键值对的对数
System.out.println("size:"+map.size());
//输出集合对象
System.out.println(map);
}
}
1.3 Map集合的获取功能测试
- V get(Object key):根据键获取值
- Set<K> keySet():获取所有键的集合
- Collection<V> values():获取所有值的集合
1.3.1 案例代码
package com.itheima_01;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* V get(Object key):根据键获取值
* Set<K> keySet():获取所有键的集合
* Collection<V> values():获取所有值的集合
*/
public class MapDemo3 {
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("get:"+map.get("张无忌"));
System.out.println("get:"+map.get("张三丰"));
System.out.println("--------------------");
//Set<K> keySet():获取所有键的集合
Set<String> set = map.keySet();
for(String key : set) {
System.out.println(key);
}
System.out.println("--------------------");
//Collection<V> values():获取所有值的集合
Collection<String> values = map.values();
for(String value : values) {
System.out.println(value);
}
}
}
1.4 Map集合的遍历之键找值
Map集合的遍历
- 思路:Map看成是一个夫妻对的集合
- 把所有的丈夫给集中起来
- 遍历丈夫的集合,获取到每一个丈夫
- 根据丈夫去找对应的妻子
- 转换:
- 获取所有键的集合
- 遍历键的集合,获取到每一个键
- 根据键去找值
1.4.1 案例代码
package com.itheima_02;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* Map集合的遍历
*
* 思路:Map看成是一个夫妻对的集合
* A:把所有的丈夫给集中起来
* B:遍历丈夫的集合,获取到每一个丈夫
* C:根据丈夫去找对应的妻子
*
* 转换:
* A:获取所有键的集合
* B:遍历键的集合,获取到每一个键
* C:根据键去找值
*/
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();
//添加元素
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
map.put("张无忌","赵敏");
//获取所有键的集合
Set<String> set = map.keySet();
//遍历键的集合,获取到每一个键
for(String key : set) {
//根据键去找值
String value = map.get(key);
System.out.println(key+"---"+value);
}
}
}
1.5 Map集合的遍历之键值对对象找键和值
Map集合遍历的方式2
- 思路:
- 获取所有结婚证的集合
- 遍历结婚证的集合,得到每一个结婚证
- 根据结婚证获取丈夫和妻子
- 转换:
- 获取所有键值对对象的集合
- 遍历键值对对象的集合,得到每一个键值对对象
- 根据键值对对象获取键和值
1.5.1 案例代码
package com.itheima_02;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* Map集合遍历的方式2
*
* 思路:
* A:获取所有结婚证的集合
* B:遍历结婚证的集合,得到每一个结婚证
* C:根据结婚证获取丈夫和妻子
*
* 转换:
* A:获取所有键值对对象的集合
* B:遍历键值对对象的集合,得到每一个键值对对象
* C:根据键值对对象获取键和值
*/
public class MapDemo2 {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();
//添加元素
map.put("郭靖","黄蓉");
map.put("杨过","小龙女");
map.put("张无忌","赵敏");
//获取所有键值对对象的集合
// Set<Map.Entry<K,V>> entrySet()
// 获取键值对对象的集合
Set<Map.Entry<String,String>> set = map.entrySet();
//遍历键值对对象的集合,得到每一个键值对对象
for(Map.Entry<String,String> me : set) {
//根据键值对对象获取键和值
String key = me.getKey();
String value = me.getValue();
System.out.println(key+"---"+value);
}
}
}
网友评论