HashMap及泛型实例(瞎搞的)

/**
 * 东北电力大学因特雷工作室版权所有
 * 开发项目组:因特雷工作室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;
 }
 
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值