Java集合框架基础——Map

来源:互联网 发布:2014年网络歌曲大全 编辑:程序博客网 时间:2024/05/16 17:38

集合Map的属性是,元素为键值对< key , value >,一对组成映射关系,且key具有唯一性。

/*假设以下类都已经导入了需要的包,假设已经定义了一个学生类Student具有id,name两个属性与各方法*///Map的添加方法public class MapClass {    //装学生类型对象    public Map<String,Student> student;    public MapClass() {        this.student = new HashMap<String,Student>();    }    //测试添加功能,输入学生ID,判断是否被占用,若无则输入姓名,创建新对象    public void putMap() {        //Scanner来接收用户输入        Scanner console = new Scanner(System.in);        int i=0;        while(i<3) {            System.out.println("please input student's ID:");            String ID = console.next();            //是否被占用            Student st = student.get(ID);            if (st == null) {                //提示输入学生姓名                System.out.println("please input student's name:");                String name = console.next();                //创建新的学生对象                Student newStudent = new Student(ID,name);                //通过调用put()方法,添加ID-学生映射,ID具有唯一性                student.put(ID,newStudent);                System.out.println(student.get(ID).name);                i++            } else {                System.out.println("error");                continue;            }        }    }}
//Map的KeySet方法public class MapClass {    //装学生类型对象    public Map<String,Student> student;    public MapClass() {        this.student = new HashMap<String,Student>();    }    //keySet方法    public void keySetMap() {        //通过keySet方法,返回Map中所有的“键”的set集合        Set<String> keySet = student,keySet();        //取得student的容量        System.out.println(student.size() + "个学生");        //遍历keySet,取得每一个键,再调用get()方法取得value        for (String stuID : keySet) {            Student st = student.get(ID);            if (st != null) {                System.out.println(st.name);            }        }           }}
//删除Map中的映射public class MapClass {    //装学生类型对象    public Map<String,Student> student;    public MapClass() {        this.student = new HashMap<String,Student>();    }    //删除方法    public void removeMap() {        //输入,获取学生ID        Scanner console = new Scanner(System.in);        while(true) {            //若id类型为int,也可以用nextInt()接收            String ID = console.next();            //判断ID是否有对应的学生对象            Student st = student.get(ID);            if(st == null) {                //提示输入的ID不存在                continue;            }            student.remove(ID);            System.out.println("成功删除学生");            break;        }    }}
//通过entrySet方法遍历Mappublic class MapClass {    //装学生类型对象    public Map<String,Student> student;    public MapClass() {        this.student = new HashMap<String,Student>();    }    //entrySet方法    public void entrySetMap() {        //通过entrySet方法,返回Map中键的值        Set<Map.Entry<String,Student> entrySet = student.entrySet();        for(Map.Entry<String,Student> entry : entrySet) {            System.out.println("取得键:"+entry.getKey());            System.out.println("对应的value为:"+entry.getValue().name);        }    }}
//使用put方法,修改Map中已有的映射public class MapClass {    //装学生类型对象    public Map<String,Student> student;    public MapClass() {        this.student = new HashMap<String,Student>();    }    //修改映射    public void modifyMap() {        //提示输入修改学生的ID        Scanner console1 = new Scanner(System.in);        while(true) {            //取得ID,若是int类型,可以使用nextInt()            String stuID = console1.next();            //是否存在ID            Student stu = student.get(stuID);            if(stu == null) {                System.out.println("error");                continue;            }            //提示当前对应学生对象的姓名            System.out.println("对应ID的学生名称:"+stu.name);            //提示输入新的学生姓名,来修改已有的映射            Scanner console2 = new Scanner(System.in);            String name = console2.next();            Student newStudent = new Student(stuID,name);            student.put(stuID,newStudent);            System.out.println("修改成功");            break;        }    }}
//Map中是否包含某个Key值或者某个value的值public class MapClass {    //装学生类型对象    public Map<String,Student> student;    public MapClass() {        this.student = new HashMap<String,Student>();    }    //方法    public void containsKeyOrValue() {        //提示用户输入学生ID        System.out.println("请输入学生ID:");        Scanner console1 = new Scanner(System.in);        String id = console1.next();        //Map中,用containsKey()方法,来判断是否包含Key值        System.out.println("是否存在此ID:" + student.containsKey(id));        if(student.containsKey(id)) {            System.out.println("对应的学生:"+student.get(id).name);        }        //提示输入学生姓名        System.out.println("请输入学生姓名:");        Scanner console2 = new Scanner(System.in);        String name = console2.next();        //用containsValue()方法,判断是否包含Value值        if(student.containsValue(new Student(null,name))) {            System.out.println("确实包含学生:"+name);        } else {            System.out.println("在学生映射表中不存在这个学生");           }    }}
0 0
原创粉丝点击