/**
* 东北电力大学因特雷工作室版权所有
* 开发项目组:因特雷工作室JAVA组开发
* 网址:http://itl.nedu.edu.cn
* JAVA组QQ开发群:37523769
* 联系请注明!!!
* 谢谢您的使用!!!!!!!
* 文件创建时间:2009年 Oct 25, 2009月 5:41:26 PM日
*/
package com.amly;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class TestMap2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
new TestMap2().testMap2();
}
public void testMap2() {
Insert<Student> in = new Insert<Student>();
HashMap<Integer,Student> hm = new HashMap<Integer,Student>();
//List<Student> lists = new ArrayList<Student>();
for(int i=1;i<5;i++) {
//学生类测试
in.setObj(new Student());
Student s = (Student)in.getObj();
/*
* 老师类测试,下面写构造泛型类起作用了。因为上面实例化的时候定义了类型为Student类型,
* 所以下面在用的时候就不能用Teacher类型。这样避免了强制类型转换的麻烦
*/
/*
* in.setObj(new Teacher());
* Teacher s = (Teacher)in.getObj();
*/
s.setId(i);
s.setName("student"+i);
s.setSex("sex" + i);
s.setHigh("high" + i);
s.setAge(i*10);
//lists.add(s);
hm.put(i, s);
}
//取出HashMap中的数据方式一,比较好的一种,是使用entrySet()方法。
Set<Map.Entry<Integer,Student>> set = hm.entrySet();
//因为Set类有iterator()方法,可以返回Iterator,这样就可以取出数据了。
Iterator<Map.Entry<Integer,Student>> iter = set.iterator();
while(iter.hasNext()) {
Map.Entry<Integer, Student> mep = iter.next();
//Map.Entry是一个内部接口,它有两个方法,分别为getKey()和getVelue(),分别可以取出Map.Entry中的值和方法。
System.out.println("KEY:"+mep.getKey()+"---"+"Velue"+mep.getValue()+"---"+"Student:"+mep.getValue().getName());
}
}
}
//构造泛型
class Insert<Q> {
private Object obj;
public void setObj(Object obj) {
this.obj = obj;
}
public Object getObj() {
return obj;
}
}
class Student {
private int id;
private String name;
private String sex;
private String high;
private int age;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setHigh(String high) {
this.high = high;
}
public String getHigh() {
return high;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
class Teacher {
private int id;
private String name;
private String sex;
private String high;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}