Java-集合之Map

来源:互联网 发布:网络侦探 贝尔菲兽 编辑:程序博客网 时间:2024/06/05 10:23

Map用于保存具有映射关系的数据。
Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据。value可以重复,但key不能重复。
所以通过指定的key就可以取出对应的value。

Interface Map< K,V >
K - the type of keys maintained by this map
V - the type of mapped values

Map中存放的是键值对。
在向Map对象中添加数据时,用到put(K,V)方法。
例如我们添加一条教师记录
名为 Tom ,教授课程为 CoreJava ,如下实现

Map teacher = new HashMap();teacher.put("Tom","CoreJava");

在移除Map中的某条数据的时候,用到remove(K)方法。
例如我们想要删除名为 Tom的教师记录,如下实现

teacher.remove(Tom);

Map集合的两种取出方式:
一种是 先获取键,再通过键获取值 的方式

Set <K> keySet

一种是 直接获取键值对 的方式

Set<Map.Entry<K,V>> entrySet

先看一个Java面试题
已知某学校的教学课程内容安排如下:
这里写图片描述
完成下列要求:
1) 使用一个 Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。
2) 增加了一位新老师 Allen 教 JDBC
3) 移除名为Lucy的老师的信息记录
4) 遍历 Map,输出所有的老师及老师教授的课程

keySet方式:

package map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class course {    public static void main(String[] args) {        //1) 使用一个 Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。        Map<String, String> teacher = new HashMap<>();        teacher.put("Tom","CoreJava");        teacher.put("John","Oracle");        teacher.put("Susan","Oracle");        teacher.put("Jim","Unix");        teacher.put("Kevin","JSP");        teacher.put("Lucy","JSP");        //2) 增加了一位新老师 Allen 教 JDBC        teacher.put("Allen", "JDBC");        //3) 移除Lucy老师的记录        teacher.remove("Lucy");        //4) 遍历 Map,输出所有的老师及老师教授的课程        Set<String> set = teacher.keySet();//set用来存取每条记录中的 键 --老师的名字        Iterator<String> itrt = set.iterator();//创建遍历器对象,对set遍历        while(itrt.hasNext()){            String key = (String) itrt.next();//获取 键            String value = (String) teacher.get(key);//通过键 查找对应的 值            System.out.println(key+"   "+value);        }       }}

entrySet方式
在获取键时使用
entry.getKey();方法
在获取值是使用
entry.getValue();方法

package map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class course {    public static void main(String[] args) {        //1) 使用一个 Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。        Map<String, String> teacher = new HashMap<>();        teacher.put("Tom","CoreJava");        teacher.put("John","Oracle");        teacher.put("Susan","Oracle");        teacher.put("Jim","Unix");        teacher.put("Kevin","JSP");        teacher.put("Lucy","JSP");        //2) 增加了一位新老师 Allen 教 JDBC        teacher.put("Allen", "JDBC");        //3) 移除Lucy老师的记录        teacher.remove("Lucy");        //4) 遍历 Map,输出所有的老师及老师教授的课程        Set<Map.Entry<String, String>> set = teacher.entrySet();//获取键值对        Iterator<Map.Entry<String, String>> itrt = set.iterator();//创建遍历器        while(itrt.hasNext()){            Map.Entry<String, String> entry = itrt.next();            System.out.println(entry.getKey() + "  " + entry.getValue());        }    }}
原创粉丝点击