Java2024/src/chapter6/Example08.java
2024-12-01 22:36:03 +08:00

74 lines
1.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package chapter6;
import java.util.HashSet;
import java.util.Iterator;
class Student implements Comparable<Student> {
String id;
String name;
int height;
public Student(String id, String name) {
this.id = id;
this.name = name;
}
public void setHeight(int height) {
this.height = height;
}
public String toString() {
return id + ":" + name;
}
public int hashCode() {
return id.hashCode();
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Student)) {
return false;
}
Student other = (Student) obj;
return this.id.equals(other.id);
}
public int compareTo(Student other) {
if (this.height > other.height) {
return 1; // 返回正数:表示"我"比"你"大
} else if (this.height < other.height) {
return -1; // 返回负数:表示"我"比"你"小
} else {
return 0; // 返回0表示"我"和"你"一样大
}
}
}
public class Example08 {
public static void main(String[] args) {
HashSet<Student> students = new HashSet<>();
Student s1 = new Student("1", "张三");
Student s2 = new Student("2", "李四");
Student s3 = new Student("2", "李四");
Student s4 = new Student("3", "王五");
students.add(s3);
students.add(s4);
students.add(s1);
students.add(s2);
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
System.out.println(student);
}
}
}