Map集合和Collection集合一起构成了java的集合框架,本篇文章讲解Map集合的学习线路。
一、Map集合简述
(1)概述
① interface Map<K,V> k:键的类型,V:值的类型
② 将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值。
③举例: 学生学号和姓名
(2)创建Map集合对象采用的是多态的方式,一般使用具体的实现类HashMap
import java.util.HashMap;
import java.util.Map;
/*
* Map集合使用时创建HashMap,多态的形式
* 存储学生学号和姓名
* 001 Tom
* 002 Jim
* 003 BOb
* 004 Mark
* */
public class Maps {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();//多态创建
//没有add方法,添加使用put方法
//V put(K key,V value)将指定值和影射中的指定键相关联
//当存在相同的Key时,put会将前一个value值覆盖
map.put("001","Tom");
map.put("002","Jim");
map.put("003","Bob");
map.put("004","Mark");
System.out.println(map);
}
}
二、Map集合的基本功能
三、Map集合的获取功能
四、Map集合遍历
(1)方法一
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* Map集合遍历
* 方法一
* 1.获取所有键的集合,用keySet()实现,返回的也是Set
* 2.遍历键的集合,获取到每一个键,用for each实现
* 3.根据键去找值,用get(Object key)实现
* 方法二
*
* */
public class MapFor {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();//多态创建
map.put("001","Tom");
map.put("002","Jim");
map.put("003","Bob");
map.put("004","Mark");
//1.获取所有键的集合
Set<String> set = map.keySet();
//2.遍历set集合
for (String str:set) {
//3.根据键找到值
System.out.println(str+":"+map.get(str));
}
}
}
(2)方法二
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* Map集合遍历
* 方法一
* 1.获取所有键的集合,用keySet()实现,返回的也是Set
* 2.遍历键的集合,获取到每一个键,用for each实现
* 3.根据键去找值,用get(Object key)实现
* 方法二
*1.获取map所有键值对对象的集合 Set<Map.Entry<K,V>> entrySet()
* 2.遍历键值对对象的集合,得到每一个键值对对象for each得到Map.Entry
* 3.根据键值对对象获取键和值
* getKey()
* getValue()
* */
public class MapFor {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();//多态创建
map.put("001","Tom");
map.put("002","Jim");
map.put("003","Bob");
map.put("004","Mark");
// //1.获取所有键的集合
// Set<String> set = map.keySet();
// //2.遍历set集合
// for (String str:set
// ) {
// //3.根据键找到值
// System.out.println(str+":"+map.get(str));
// }
//1.获取键值对对象的集合
Set<Map.Entry<String,String>> entrySet = map.entrySet();
//2.for each获取每一个键值对对象
for (Map.Entry<String,String> m:entrySet) {
//3.根据键值对对象获取键和值
System.out.println(m.getKey()+":"+m.getValue());
}
}
}