Java(集合框架2)

Map接口

在这里插入图片描述
Map存储数据的特点:
Map接口中存储一组键值对象,提供key到Value的映射
通过键找到值,一一对应,就像通过身份证号找到人一样
key是唯一的,Value是可以重复的
在这里插入图片描述
什么时候使用Map:
Map接口专门存储键值 关系映射数据的存储
当存储这些数据的时候,我们可以使用Map最常用的实现类:HashMap

使用HashMap集合

需求:
添加一组娱乐圈曾为夫妻关系的明星姓名,男的用键,女的用值
如图:
在这里插入图片描述
分析:
1、如何创建 new 实现类
2、如何添加 put(key,value)
3、如何获取存储了几组信息 size()
4、如何获取集合中的数据 通过键获取值 get( key)

Map的常用方法

在这里插入图片描述

遍历Map

方法一:
遍历key,通过key —>value
方法1. 通过迭代器Iterator实现遍历
方法2. 增强for循环

//思路1 增强for遍历key
Set keys = map.keySet();
//遍历keys
for (Object obj : keys) {
String key=(String)obj;//获取到了map中的每一个key
String value = (String)map.get(key);//拿到每一个value
System.out.println(key+"—"+value);
}

方法二:
遍历key-value对

//思路2 迭代器遍历
Iterator iterator = keys.iterator();
while (iterator.hasNext()){
String key2 = (String) iterator.next();//获取到了所有的key键
String value2 = (String) map.get(key2);//获取到了所有的值
System.out.println(key2+"—"+value2);
}

方法三:

//思路3 获取所有的键值对,再通过键值对拿里面的key和value
//1、获取map 中的每一对键值对
Set entrySet = map.entrySet();
//2、遍历每一个键值对
for (Object o : entrySet) {
Map.Entry entry = (Map.Entry) o;//把获取到的键值对转为Map.entry类型
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println(key+"—"+value);
}

Map使用练习

//创建学生类对象  包含属性 性别 姓名
public class Student {
    
    
    private String name;
    private String sex;

    //有参构造方法传参
    public Student(){
    
    }
    public Student(String name,String sex){
    
    
        this.name=name;
        this.sex=sex;
    }
    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public String getSex() {
    
    
        return sex;
    }

    public void setSex(String sex) {
    
    
        this.sex = sex;
    }
}

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

//创建学生对应的集合   需要给英文名  键英文名  值 对象
public class StuMag {
    
    
    public static void main(String[] args) {
    
    
        //创建学生类对象
        Student stu1 = new Student("李白","男");
        Student stu2 = new Student("杜甫","男");
        Student stu3 = new Student("白居易","男");
        Student stu4 = new Student("李清照","女");
        //创建map集合,
        Map<String,Student> map = new HashMap();
        //把学生对象放进map集合 键  英文名 值 学生对象
        map.put("Sun",stu1);
        map.put("Jim",stu2);
        map.put("Jack",stu3);
        map.put("San",stu4);
        //通过英文名称,获取该学员对象的详细信息
        Student jkStu =  map.get("Jack");
        String name = jkStu.getName();
        String sex = jkStu.getSex();
        System.out.println("Jack-"+"-"+name+"-"+sex);

        System.out.println("=========遍历map集合============");
        //遍历整个集合
        Set keySet = map.keySet();
        Iterator<String> iterator = keySet.iterator();
        while (iterator.hasNext()){
    
    
            String key = (String) iterator.next();
            Student student = map.get(key);
            String name1 = student.getName();
            String sex1 = student.getSex();
            System.out.println(key+"="+name1+"--"+sex1);
        }
    }
}

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yangyingjian123/article/details/113622283