Java-集合之Map

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());
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值