package jihe;
public class Student {
private int stuId;
private String name;
private double score;
public Student(int stuId, String name, double score) {
super();
this.stuId = stuId;
this.name = name;
this.score = score;
}
public Student() {
super();
}
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 double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "[学号:" + stuId + ", 姓名:" + name + ", 成绩:" + score + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
long temp;
temp = Double.doubleToLongBits(score);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + stuId;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Student)) {
return false;
}
Student other = (Student) obj;
if (name == null) {
if (other.name != null) {
return false;
}
} else if (!name.equals(other.name)) {
return false;
}
if (Double.doubleToLongBits(score) != Double.doubleToLongBits(other.score)) {
return false;
}
if (stuId != other.stuId) {
return false;
}
return true;
}
}
public class StudentTest {
public static void main(String[] args) {
Student stu1 = new Student(3, "William", 65);
Student stu2 = new Student(1, "Tom", 87);
Student stu3 = new Student(2, "Lucy", 95);
Set<Student> stu = new HashSet<>();
stu.add(stu1);
stu.add(stu2);
stu.add(stu3);
Iterator<Student> it = stu.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("=========================");
Student stu4 = new Student(2, "Lucy", 55);
stu.add(stu4);
Iterator<Student> it2 = stu.iterator();
while (it2.hasNext()) {
System.out.println(it2.next());
}
}