创建一个Student类,有成员变量name和cardId。 如果两个学生对象的姓名和学号一样视为同一个学生, 在HashSet中添加学生对象 并遍历打印学生信息。
import java.util.HashSet; public class Test { public static void main(String[] args) { HashSet<Student> students=new HashSet<>(); students.add(new Student("qyb",22)); students.add(new Student("yyy",22)); students.add(new Student("qyb",22)); for (Student student : students) { System.out.println(student); } } }
import java.util.Objects; public class Student { private String name; private int cardId; public Student(String name, int cardId) { this.name = name; this.cardId = cardId; } public Student() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getCardId() { return cardId; } public void setCardId(int cardId) { this.cardId = cardId; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return cardId == student.cardId && Objects.equals(name, student.name); } @Override public int hashCode() { return Objects.hash(name, cardId); } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", cardId=" + cardId + '}'; } }