编写一个学生类,具有姓名,年龄,性别三个属性,创建3个学生对象并保存到HashSet中,利用迭代器Iterator将集合里所有学生姓名,年龄,性别打印出来。
package shu;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
class Student{
private String sno;
private String name;
private int age;
private String sex;
public Student(){
}
@Override
public boolean equals(Object arg) {
Student s=(Student) arg;
if(s.sno.equals(this.sno)) {
return true;
}else {
return false;
}
}
@Override
public int hashCode() {//用来实现类的地址 hasCode和equals是需要同时重写的用来判别类的内容是否相同
//有很多初学者会发现两个类相同但是用== 和equals 去比较类返回的是false吧因为他们的地址不同
// TODO Auto-generated method stub
return sno.hashCode();
}
public Student(String sno,String name,int age,String sex){
this.sno=sno;
this.name=name;
this.age=age;
this.sex=sex;
}
@Override
public String toString() {//内容显示
// TODO Auto-generated method stub
return "学号:"+this.sno+" 姓名:"+this.name+" 年纪:"+this.age+" 性别:"+this.sex;
}
}
public class text1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<Student> s=new HashSet<Student>();
s.add(new Student("1001","张三",16,"男"));
s.add(new Student("1002","李四",19,"女"));
s.add(new Student("1003","王五",16,"男"));
s.add(new Student("1003","王五",16,"男"));
//这里讲解一下迭代器的用法吧
//迭代器的作用是遍历集合等
Iterator<Student>iter=s.iterator();//转化成迭代器对象
while(iter.hasNext()) {//判断迭代器是否迭代完 如果不用这个判断会抛出异常可以试试看
System.out.println(iter.next());
}
for(Student t:s) {//学生类的内容就是t 这个相当于迭代器的实现
System.out.println(t);
}
}
}