Java集合之-Map集合

来源:互联网 发布:知党章党规,系列讲话 编辑:程序博客网 时间:2024/05/21 05:06

通过以下实例来体验Map的具体用法:

  1. 通过Map

创建一个Student类

public class Student{    public String id;    public String name;    public Set<Course> courses;//Set之前测试用到,这里没有用到    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Student(String id, String name) {        this.id = id;        this.name = name;        courses=new HashSet<Course>();    }}

创建一个MapTest测试类

import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Set;/** * Created by Administrator on 2017/4/1/001. */public class MapTest{    public Map<String,Student> mStudentMap;    public  Scanner mScanner;    public MapTest()    {        //初始化Map对象        this.mStudentMap=new HashMap<String,Student>();        mScanner=new Scanner(System.in);    }    public static void main(String[]args)    {        MapTest mapTest=new MapTest();        mapTest.testPut();        mapTest.testKeySet();        mapTest.testRemove();        mapTest.testEntrySet();        mapTest.testModefy();        mapTest.testEntrySet();    }     /*    * 测试添加方法    * */    public void testPut()    {        int i=0;        while(i<3)        {            System.out.println("请输入学生ID:");            String ID=mScanner.next();            Student st=mStudentMap.get(ID);            if(st==null)            {                //提示输入学生姓名                System.out.println("请输入学生姓名:");                String name=mScanner.next();                //创建新的学生对象                Student newStudent=new Student(ID,name);                //放入HashMap中                mStudentMap.put(ID,newStudent);                System.out.println("成功添加学生:"+mStudentMap.get(ID).getName());                i++;            }else            {                System.out.println("该学生ID已被占用");                continue;//继续执行循环            }        }    }    /*    * 测试Map的keySet方法,返回的是    * Map中的所有“键”的Set集合    *    * */    public void testKeySet()    {        //通过keySet方法,返回Map中的所有“键”的Set集合        Set<String> keySet=mStudentMap.keySet();        for (String stuId:keySet             ) {            //通过每个键获得对应的value值            Student st=mStudentMap.get(stuId);            //判断对象是否为空            if(st!=null)            {                System.out.println("学生:"+st.getName());            }        }    }    /*    * 测试删除Map中的映射    *    * */    public void testRemove()    {        while (true)        {            System.out.println("请输入待删除的学生ID:");            String id=mScanner.next();            Student st=mStudentMap.get(id);            if(st==null)            {                System.out.println("该ID不存在");                continue;            }            mStudentMap.remove(id);            System.out.println("成功删除学生:"+st.name);            break;        }    }    /*    * 通过entrySet方法来遍历Map    *    * */    public void testEntrySet()    {        //通过entrySet方法,返回Map中的所有键值对        Set<Map.Entry<String,Student>> entrySet=mStudentMap.entrySet();        for(Map.Entry<String,Student> entry:entrySet)        {            System.out.println("取得键:"+entry.getKey());            System.out.println("对应的值为:"+entry.getValue().getName());        }    }    /*    * 测试修改方法    *    * */    public void testModefy()    {        //提示输入要修改的学生ID        System.out.println("请输入要修改的学生ID:");        while (true)        {            String stuID=mScanner.next();            //从mStudentMap中查找该学生ID对应的学生对象            Student st=mStudentMap.get(stuID);            if(st==null)            {                System.out.println("该ID不存在!重新输入");                continue;            }            //提示当前对象对应的学生对象的姓名            System.out.println("当前该学生ID,所对应的学生为:"+st.getName());            //提示输入新的学生姓名,来修改已有的映射            System.out.println("请输入新的学生姓名:");            String name=mScanner.next();            Student student=new Student(stuID,name);            mStudentMap.put(stuID,student);            System.out.println("修改成功!");            break;        }    }}
0 0
原创粉丝点击