Map用法

学生类

 

package com.job_2_22;
/**
 * 学生类
 * @author Administrator
 *
 */
public class Student {
    /**
     * 学生属性
     */
    private String name;
    private char sex;
    
    /**
     * 构造方法
     */
    public Student() {}
    public Student(String name, char sex) {
        super();
        this.name = name;
        this.sex = sex;
    }
    
    /**
     * setter getter
     */
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public char getSex() {
        return sex;
    }
    public void setSex(char sex) {
        this.sex = sex;
    }

    
    
}

 

 

 

学生测试类

 

package com.job_2_22;

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

/**
 * 学生测试类
 * @author Administrator
 *
 */
public class StudentTest {
    public static void main(String[] args) {
        //创建map学生类的集合    key value    无序    唯一
        Map<String,Student> student=new HashMap<String,Student>();

        //创建学生对象
        Student s1=new Student("张三",'男');
        Student s2=new Student("李四",'男');
        Student s3=new Student("王五",'男');
        Student s4=new Student("小刘",'女');

        //把学生放入map学生类集合    key value
        student.put("zs", s1);
        student.put("ls", s2);
        student.put("ww", s3);
        student.put("xl", s4);

        //遍历所有值
        for(Student stu:student.values()) {                //用values对象,遍历出所有对象
            System.out.print(stu.getName()+"\t");    
            System.out.println(stu.getSex());
        }

        //遍历所有键
        System.out.println("keySet遍历所有键:"+student.keySet());

        //get用键获取值
        System.out.println("get用键获取值:"+student.get("ww").getName()+student.get("ww").getSex());

        //remove删除这个键
        student.remove("xl");

        //containsKey判断是否存在这个键,返回boolean类型
        System.out.println("containsKey判断是否存在这个键“ww”:"+student.containsKey("ww"));
        System.out.println("containsKey判断是否存在这个键“ss”:"+student.containsKey("ss"));

        //contains Value判断是否有这个值
        System.out.println("contains Value判断是否存在这个键“s1”:"+student.containsValue(s1));
        System.out.println("contains Value判断是否存在这个键“s4”:"+student.containsValue(s4));

        //keySet
        System.out.println("获取所有key:"+student.keySet());

        //value
        System.out.println("获取所有value:"+student.values());

        //遍历出所有键
        for(String s:student.keySet()) {
            System.out.println(s);
        }

        //遍历出所有值
        for(Student s:student.values()) {
            System.out.println(s.getName()+s.getSex());
        }

        //分别遍历 map中的键和值
        for(String s:student.keySet()) {
            System.out.println("键:"+s+",值:"+student.get(s).getName()+student.get(s).getSex());
        }
        
        //Iterator迭代器拿到每个key
        Iterator<String> itor=student.keySet().iterator();        //把map所有键放入迭代器
        while(itor.hasNext()) {                                    //判断迭代器里是否有下个值
            String key=(String)itor.next();                        //迭代器转成赋值给key
            String name=student.get(key).getName();                //key找到value对象的name
            char sex=student.get(key).getSex();                    //key找到value对象的sex
            System.out.println("迭代器输出:"+name+sex);            //输出name 和 sex
        }
        
        //map.entry
        for(Map.Entry<String, Student> m:student.entrySet()) {
            String key=m.getKey();            //Map.Entry类型获取key
            Student s=m.getValue();            //Map.Entry类型获取value
            String name=s.getName();        //value获取name
            char sex=s.getSex();            //value获取sex
            System.out.println("key:"+key+",value"+name+"-"+sex);
        }
        
        //
    }
}

 

运行

 

posted @ 2019-02-24 23:10  纸灰  阅读(229)  评论(0编辑  收藏  举报