Map容器小程序,学生作为key,地址作为value,采用keySet和entrySet两种取出方式

来源:互联网 发布:淘宝稻香村哪个是真的 编辑:程序博客网 时间:2024/04/27 13:39

每一个学生都有对应的归属地
学生Student,地址String
学生属性:姓名,年龄
注意:姓名和年龄相同视为同一个学生
保证学生的唯一性

1.描述学生
2.定义Map容器。将学生作为键,地址作为值。存入
3.获取Map集合中元素。

import java.util.*;class Student implements Comparable<Student>{    private String name;    private int age;    Student(String name,int age)    {        this.name=name;        this.age=age;    }    public String getName()    {        return name;    }    public int getAge()    {        return age;    }    public String toString()    {        return name+"::"+age;    }    public int hashCode()    {        return name.hashCode()+age*34;    }    public boolean equals(Object obj)    {        if(!(obj instanceof Student))            throw new ClassCastException("类型不匹配");        Student s=(Student) obj;        return this.name==s.name && this.age==s.age;    }    public int compareTo(Student s)    {        int num=new Integer(this.age).compareTo(new Integer(s.age));        if(num==0)            return this.name.compareTo(s.name);         return num;    }}public class MapTest1 {    public static void main(String[] args) {        // TODO Auto-generated method stub        HashMap<Student,String> hm=new HashMap<Student,String>();        hm.put(new Student("zhangsan01",22), "shanxi");        hm.put(new Student("zhangsan02",23), "beijing");        hm.put(new Student("zhangsan03",20), "shanghai");        hm.put(new Student("zhangsan04",21), "chengdu");        //两种取出方式        //keySet        Set<Student> keySet=hm.keySet();        Iterator<Student> it=keySet.iterator();        while(it.hasNext())        {            Student stu=it.next();            String addr=hm.get(stu);            System.out.println(stu+"..."+addr);        }        //entrySet        Set<Map.Entry<Student, String>> entrySet=hm.entrySet();        Iterator<Map.Entry<Student, String>> itr=entrySet.iterator();        while(itr.hasNext())        {            Map.Entry<Student, String> me=itr.next();            Student key=me.getKey();            String value=me.getValue();            System.out.println(key+"............."+value);        }    }}

dos界面运行结果:
这里写图片描述

注意:
1.实现comparable
2.覆写hashCode和equals保证唯一性,不重复

0 0
原创粉丝点击