- Map集合概述:
public interface Map<K,V>
将键映射到值的对象。不能包含重复的键; 每个键可以映射到最多一个值。
该接口代替了Dictionary类,它是一个完全抽象的类而不是接口。 - 创建Map集合的对象:
- 多态的方式
- 具体的实现类HashMap
- Map集合的基本功能:
- V put(K key, V value): 将指定的值与该映射中的指定键相关联(可选操作)。
- V remove(Object key): 如果存在(从可选的操作),从该地图中删除一个键的映射。
- void clear(): 从该地图中删除所有的映射(可选操作)。
- boolean containsKey(Object key): 如果此映射包含指定键的映射,则返回 true 。
- boolean containsValue(Object value): 如果此映射将一个或多个键映射到指定的值,则返回 true 。
- boolean isEmpty(): 如果此映射不包含键值映射,则返回 true 。
- int size(): 返回此地图中键值映射的数量。
import java.util.HashMap;
import java.util.Map;
/*
Map集合的基本功能:
V put(K key, V value): 将指定的值与该映射中的指定键相关联(可选操作)。
V remove(Object key): 如果存在(从可选的操作),从该地图中删除一个键的映射。
void clear(): 从该地图中删除所有的映射(可选操作)。
boolean containsKey(Object key): 如果此映射包含指定键的映射,则返回 true 。
boolean containsValue(Object value): 如果此映射将一个或多个键映射到指定的值,则返回 true 。
boolean isEmpty(): 如果此映射不包含键值映射,则返回 true 。
int size(): 返回此地图中键值映射的数量。
*/
public class MapDemo {
public static void main(String[] args) {
//创建集合对象
Map<String,String> map = new HashMap<String,String>();
// 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("赵馨馨"));//null
//void clear(): 从该地图中删除所有的映射(可选操
// map.clear();
//boolean containsKey(Object key): 如果此映射包含指定键的映射,则返回 true 。
// System.out.println(map.containsKey("张彤彤"));//true
// System.out.println(map.containsKey("张欢欢"));//false
//boolean containsValue(Object value): 如果此映射将一个或多个键映射到指定的值,则返回 true 。
// System.out.println(map.containsValue("杜美美"));//true
// System.out.println(map.containsValue("张欢欢"));//false
//boolean isEmpty(): 如果此映射不包含键值映射,则返回 true 。
System.out.println(map.isEmpty());//false
//int size(): 返回此地图中键值映射的数量。
System.out.println(map.size());//3
//输出集合
System.out.println(map);
}
}
- Map集合的获取功能:
- V get(Object key): 根据键获取值
- Set keySet(): 获取所有键的集合
- Collection values():获取所有值的集合
- Set<Map.Entry<K,V> entrySet():获取所有键值对对象的集合
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
Map集合的获取功能:
V get(Object key): 根据键获取值
Set<K> keySet(): 获取所有键的集合
Collection<V>values():获取所有值的集合
Set<Map.Entry<K,V> entrySet():获取所有键值对对象的集合
*/
public class MaoDemo {
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("李珊珊"));//李悦悦
// Set<K> keySet(): 获取所有键的集合
Set<String> keySet = map.keySet();
// for (String s:keySet){
// System.out.println(s);
// }
// /*
// 结果:杜美美
// 李悦悦
// 张彤彤
// 谢婷婷
// 李珊珊
// */
//Collection<V>values():获取所有值的集合
Collection<String> values = map.values();
for (String s:values){
System.out.println(s);
}
/*
结果:
杜美美
张大同
李悦悦
*/
}
}
- Map集合的遍历(方式1):
- 可以把Map集合看成是夫妻集合
- 转换Map集合中的操作:
- 获取所有键的集合,用keySet()方法实现
- 遍历键的集合,获取每一个键,用增强for循环实现
- 根据键去找值,用get(Object key)方法实现
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
Map集合的遍历(方式1):
- 转换Map集合中的操作:
- 获取所有键的集合,用keySet()方法实现
- 遍历键的集合,获取每一个键,用增强for循环实现
- 根据键去找值,用get(Object key)方法实现
*/
public class MapDemo01 {
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循环实现
for (String key:keySet){
//根据键去找值,用get(Object key)方法实现
String value = map.get(key);
System.out.println(key + "," + value);
}
}
}
D:\Users\Java\jdk1.8.0_102\bin\java.exe
张彤彤,杜美美
张大同,谢婷婷
李珊珊,悦悦
- Map集合的遍历(方式2):
- 可以把Map集合看成是夫妻集合
- 转换Map集合中的操作:
- 获取所有键值对对象的集合:Set<Map.Entry<K,V> entrySet()
- 遍历键值对对象的集合,得到每一个键值对象 :用增强for循环实现,得到每一个Map.Entry
- 根据键值对对象获取键和值:用getKey()得到键,用getValue得到值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
Map集合的遍历(方式2):
- 可以把Map集合看成是夫妻集合
- 转换Map集合中的操作:
- 获取所有键值对对象的集合:Set<Map.Entry<K,V> entrySet
- 遍历键值对对象的集合,得到每一个键值对象 :用增强for循环实现,得到每一个Map.Entry
- 根据键值对对象获取键和值:用getKey()得到键,用getValue得到值
*/
public class MapDemo02 {
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>> entrySet = map.entrySet();
//遍历键值对对象的集合,得到每一个键值对象 :用增强for循环实现,得到每一个Map.Entry
for (Map.Entry<String,String>me : entrySet){
//根据键值对对象获取键和值
String key = me.getKey();
String value = me.getValue();
System.out.println(key + ","+ value);
}
}
}
D:\Users\Java\jdk1.8.0_102\bin\java.exe
张彤彤,杜美美
张大同,谢婷婷
李珊珊,悦悦