描述java,java描述学生

/**

描述学生,每一个学生都有一个归属地

学生Student 地址String类

学生属性:姓名,年龄

注意:姓名和年龄相同为同一个人

需求:

排除重复的学生,获取学生和其地址。

*/

import java.util.*;

class Student implements Comparable{//要实现该接口,如果不实现,放在二叉树里会报错

private String name;

private int age;

Student(String name,int age){

this.name = name;

this.age =    age;

}

//防止出现对象放在二叉树集合时的情况

public int compareTo(Student t){

int num = new Integer(this.age).compareTo(new Integer(t.age));

if(num==0)

return this.name.compareTo(t.name);

return num;

}

//因为要判断排除重复的学生,学生唯一性是有姓名和年龄组成

public int hashCode(){

return name.hashCode()+age*3;

}

//复写判断方法

public boolean equals(Object obj){

//判断,如果传入的不是学生类,抛出异常。因为需求是要学生和学生比

if(!(obj instanceof Student))

throw new ClassCastException("不是学生类!");

Student st = (Student)obj;//向下转型

return this.name==st.name && this.age == st.age;

}

public String getName(){

return name;

}

public int getAge(){

return age;

}

//加上这一句不在打印hash值

public String toString(){

return "学生姓名:"  + name + ",年龄:" + age;

}

}

class MapTest{

public static void main(String[]args){

HashMap hm = new HashMap();

hm.put(new Student("李四1", 21),"北京1");

hm.put(new Student("李四1", 21),"北京5");

hm.put(new Student("李四2", 22),"北京2");

hm.put(new Student("李四3", 23),"北京3");

hm.put(new Student("李四4", 24),"北京4");

//2种取出方式 keySet方式

Set key = hm.keySet();

Iterator it = key.iterator();

while(it.hasNext()){

Student stu = it.next();

String addr =hm.get(stu);

System.out.println(stu + ",地址:"+addr);

}

//entrySet方式

Set> me = hm.entrySet();

Iterator>  iter = me.iterator();

while(iter.hasNext()){

Map.Entry me1 = iter.next();

Student stu = me1.getKey();

String addr = me1.getValue();

System.out.println(stu + ",地址:"+addr);

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值