编辑代码

package other;

import java.util.Objects;

//定义一个学生类Student
public class Student {
	//学号stuId(int)
	private int stuId;
	//姓名name(String)
	private String name;
	//成绩score(float)
	private float score;
	//方法为:构造方法
	public Student(int stuId, String name, float score) {
		super();
		this.stuId = stuId;
		this.name = name;
		this.score = score;
	}
	public Student() {
		
	}
	//getter和setter方法
	public int getStuId() {
		return stuId;
	}
	public void setStuId(int stuId) {
		this.stuId = stuId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public float getScore() {
		return score;
	}
	public void setScore(float score) {
		this.score = score;
	}
	//toString方法
	@Override
	public String toString(){
		return "["+"学号:" + getStuId() + ",姓名:" + getName() + ",成绩:" + getScore() + "]";
	}
	//重写hashCode()
	public int hashCode(){
		return Objects.hash(getStuId(),getName());
	}
	
	
	//重写equals()方法,equals方法的判断依据是学号和姓名相等
	@Override
	public boolean equals(Object obj){
		if(obj == null){
			return false;
		}else{
			//将Object转换为Student
			Student stu = (Student) obj;
			if(this.getName().equals(stu.getName())&& this.getStuId() == stu.getStuId()) {
				return true;
				
			}else{
				return false;
			}
		}
        }
}
}
}
public class Test {
	public static void main(String[] args) {
	//定义三个Student类的对象及一个HashSet类的对象
	Student stu1 = new Student(3,"william",65.0f);
	Student stu2 = new Student(1,"Tom",87.0f);
	Student stu3 = new Student(2,"Lucy",95.0f);
	//添加一个重复数据到Set中,观察输出结果
	Student stu4 = new Student(2,"Lucy",95.0f);
	Set<Student> set = new HashSet<Student>();
	//将Student类的对象添加到集合中
	set.add(stu1);	
	set.add(stu2);	
	set.add(stu3);
	set.add(stu4);
	//使用迭代器显示Student类的对象中的内容
	Iterator<Student> ite = set.iterator();
	while(ite.hasNext()) {
		System.out.println(ite.next());
	}
		
    
	}
}