A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© joeywr 中级黑马   /  2015-8-23 22:57  /  109 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;

class Person
{
private String name;
private int age;
private String sex;
private String No;

Person(String name,String sex,String No,int age){
this.name = name;
this.age = age;
this.sex = sex;
this.No = No;
}
public String getName(){
return this.name;
}
public String getSex(){
return this.sex;
}
public int getAge(){
return this.age;
}
public String getNo(){
return No;
}
public int hashCode(){
return this.name.hashCode()+age*10;//乘10是保证返回的哈希值的唯一性
}
public boolean equals(Object obj){
if(!(obj instanceof Person))
return false;
Person human = (Person)obj;
System.out.println(this.name+"...equals.."+human.name);
return this.name.equals(human.name)&&this.age==human.age&&this.sex.equals(human.sex)&&this.No.equals(human.No);
}
}
public class removePerson{
public static void show(Person p){
System.out.printf("%s:%s,今年%d岁,学号——%s\n",p.getName(),p.getSex(),p.getAge(),p.getNo());
}
public static void main(String []args){
HashSet ha = new HashSet();
Person p1 = new Person("吴云","男","110735117",20);
Person p2 = new Person("马湖","男","110531146",21);
Person p3 = new Person("吴云","男","110735117",20);
Person p4 = new Person("李强","男","120464120",18);
Person p5 = new Person("马湖","男","110531146",21);

ha.add(p1);
ha.add(p2);
ha.add(p3);
ha.add(p4);
ha.add(p5);

Iterator it = ha.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
show(p);
}
}
}
程序的功能是:去除相同属性的人,即姓名,年龄,学号,性别都相同就认为是同一个人
我想问迭代器部分为什么需要强制转换,迭代出来的元素都是Object类型的元素吗?这是向下转型吗?
您需要登录后才可以回帖 登录 | 加入黑马