Java——Map集合
一、Map集合的概述
- Interface Map<K,V>,K是键的类型,V是值的类型
- 将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值
- 举例:学生的学号和姓名
001 zlx
002 lkl
003 opk
二、Map集合对象的创建
- 多态的方式
- 具体的实现类HashMap
import java.util.HashMap;
import java.util.Map;
public class MapDemo1 {
public static void main(String[] args) {
//创建Map对象
Map<String, String> map = new HashMap<String, String>();
map.put("001", "zlx");
map.put("002", "ski");
map.put("003", "ssj");
System.out.println(map);
}
}
注意:put()方法第一次使用是添加内容,第二次使用是更改内容
import java.util.HashMap;
import java.util.Map;
public class MapDemo1 {
public static void main(String[] args) {
//创建Map对象
Map<String, String> map = new HashMap<String, String>();
map.put("001", "zlx");
map.put("002", "ski");
map.put("003", "ssj");//第二次使用
map.put("003", "new");
System.out.println(map);
}
}
三、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():集合的长度,也就是键值对的个数
import java.util.HashMap;
import java.util.Map;
public class Demo2 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
//添加元素
map.put("001", "zlx");
map.put("002", "zll");
System.out.println(map);
//集合的长度
System.out.println(map.size());
//判断是否为空
System.out.println(map.isEmpty());
//判断是否包含指定的键
System.out.println(map.containsKey("001"));
System.out.println(map.containsKey("005"));
//判断是否包含指定的值
System.out.println(map.containsValue("zlx"));
System.out.println(map.containsValue("sss"));
//根据键删除键值对元素
map.remove("002");
System.out.println(map);
//移除所有的键值对元素
map.clear();
System.out.println(map);
}
}
四、Map集合的获取功能
- V get(Object key):根据键获取值
- Set< K> keySet():获取所有键的集合
- Collection< V> values():获取所有值的集合
- Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo3 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
//添加元素
map.put("001", "zlx");
map.put("002", "zll");
map.put("003", "kji");
System.out.println(map);
//根据键获取值
System.out.println(map.get("001"));
System.out.println(map.get("005"));
//获取所有键的集合
Set<String> keyset = map.keySet();
System.out.println(keyset);
//获取所有值的集合
Collection<String> values = map.values();
System.out.println(values);
//获取所有键值对对象的集合
Set<Map.Entry<String, String>> entries = map.entrySet();
System.out.println(entries);
}
}
五、Map集合的遍历
1、Map集合的遍历(方法1)
- 获取所有键的集合,用keySet()实现
- 遍历键的集合,获取每一个键值,用增强for实现
- 根据键去找值,用get(Object key)方法实现
示例
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo4 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("001", "zlx");
map.put("002", "zll");
map.put("003", "kji");
System.out.println(map);
//获取所有键的集合
Set<String> keyset = map.keySet();
for (String s : keyset) {
String v = map.get(s);
System.out.println(s + "," + v);
}
}
}
2、Map集合的遍历(方法2)
- 获取所有键值对对象的集合
Set<Map.Entry<K,V>> entrySet() - 遍历键值对对象的集合,得到每一个键值对对象
用增强for实现,得到每一个Map.Entry - 根据键值对对象获取键和值
getKey()得到键
getValue()得到值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo5 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("001", "zlx");
map.put("002", "zll");
map.put("003", "kji");
System.out.println(map);
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> e : entries) {
String key = e.getKey();
String value = e.getValue();
System.out.println(key + "," + value);
}
}
}