java Map练习(一)
/* * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:Map练习(一) * 作 者:薛广晨 * 完成日期:2012 年 10 月 24 日 * 版 本号:x1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: 每一个学生都有对应的归属地。学生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 void setName(String name){this.name = name;}public void getAge(int age){this.age = age;}public String getName(){return name;}public int getAge(){return age;}public int hashCode(){return name.hashCode() + age * 34;}public boolean equals(Object obj){if(!(obj instanceof Student)){throw new ClassCastException("类型不匹配");}Student stu = (Student)obj;return this.name.equals(stu.name) && this.age == stu.age;}public int compareTo(Student stu){int num = new Integer(this.age).compareTo(new Integer(stu.age));if(num == 0)return this.name.compareTo(stu.name);return num;}public String toString(){return name+":"+age;}}class MapTest4 {public static void main(String[] args) {HashMap<Student, String> hm = new HashMap<Student, String>();hm.put(new Student("lisi1",21),"beijing");hm.put(new Student("lisi1",21),"tianjin");hm.put(new Student("lisi2",22),"shanghai");hm.put(new Student("lisi3",23),"nanjing");hm.put(new Student("lisi4",24),"wuhan");//第一种取出方式 keySetSet<Student> keySet = hm.keySet();for(Iterator<Student> it = keySet.iterator(); it.hasNext(); ){Student stu = it.next();String addr = hm.get(stu);System.out.println(stu+".."+addr);}//第二种取出方式 entrySetSet<Map.Entry<Student, String>> entrySet = hm.entrySet();for(Iterator<Map.Entry<Student, String>> iter = entrySet.iterator(); iter.hasNext(); ){Map.Entry<Student, String> me = iter.next();Student stu = me.getKey();String addr = me.getValue();System.out.println(stu+"........."+addr);}}}