Map集合
Map 集合的概述
- interface Map<K,V> K:键的类型; V:值得类型
- 将键映射到值得对象;不能包含重复的键;每个键可以映射到最多一个值
- 例如:学生的学号和姓名
创建Map集合的对象
import java.util.HashMap;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
//V put(K key, V value) 将指定的值与该映射中的指定键相关联
map.put("001", "张三");
map.put("002", "李四");
map.put("003", "王五");
map.put("001", "二狗"); //当键第二次出现将会修改第一次出现的值
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 Demo {
public static void main(String[] args) {
Map<String, Double> map = new HashMap<>();
//V put(K key, V value)
map.put("K01", 0.1);
map.put("K02", 0.2);
map.put("K03", 0.3);
System.out.println(map);
//V remove(Object key)
System.out.println(map.remove("K02"));
System.out.println(map);
//boolean containsKey(Object key)
System.out.println(map.containsKey("K03"));
//boolean containsValue(Object value)
System.out.println(map.containsValue(0.3));
//boolean isEmpty()
System.out.println(map.isEmpty());
// int size()
System.out.println(map.size());
//void clear()
map.clear();
System.out.println(map);
}
}
Map集合获取功能
- V get(Object key):根据键获取值
- Set keySet():获取所有键的集合
- Collection values():获取所有值的集合
import java.util.*;
public class Demo {
public static void main(String[] args) {
Map<String, Double> map = new HashMap<>();
map.put("K01", 0.01);
map.put("K02", 0.02);
map.put("K03", 0.03);
//V get(Object key):根据键获取值
System.out.println(map.get("K03"));
//Set<K> keySet():获取所有键的集合
System.out.println(map.keySet());
//Collection<V> values():获取所有值的集合
System.out.println(map.values());
}
}
Map集合的遍历方式一
遍历思路:
- 获取所有键的集合。用keySet()方法实现
- 遍历键的集合,获取到每一个键。用增强for实现
- 根据键去找值。用get(Object key)实现
import java.util.*;
public class Demo {
public static void main(String[] args) {
Map<String, Double> map = new HashMap<>();
map.put("K01", 0.1);
map.put("K02", 0.2);
map.put("K03", 0.3);
map.put("K04", 0.4);
Set<String> key = map.keySet();
for (String k : key) {
Double value = map.get(k);
System.out.println(k + "," + value);
}
}
}
Map集合的遍历方式二
遍历思路:
- 获取所有键值对对象的集合
- Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
- 遍历键值对对象的集合,得到每一个键值对对象
- 根据键值对对象获取键和值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("A", "a");
map.put("B", "b");
map.put("C", "c");
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> i : entries) {
System.out.println(i.getKey() + "," + i.getValue());
}
}
}