Java 如何在HashSet中只维护非相等对象
如何删除具有相同状态的对象Java 如何在HashSet中只维护非相等对象,java,Java,如何删除具有相同状态的对象 class Student{ private int age; private String name; Student(int age, String name){ this.age=age; this.name=name; } }
class Student{
private int age;
private String name;
Student(int age, String name){
this.age=age;
this.name=name;
} }
public class SetTest {
public static void main(String[] args) {
Student s1= new Student(15,"abc");
Student s2= new Student(15,"abc");
Student s3= new Student(16,"adfc");
Student s4= new Student(14,"ayuc");
Set<Student> ss= new HashSet<Student>();
ss.add(s1); ss.add(s2); ss.add(s3); ss.add(s4);}}
班级学生{
私人互联网;
私有字符串名称;
学生(整数年龄,字符串名称){
这个。年龄=年龄;
this.name=name;
} }
公共类设置测试{
公共静态void main(字符串[]args){
学生s1=新生(15,“abc”);
学生s2=新生(15,“abc”);
学生s3=新生(16,“adfc”);
学生s4=新生(14,“ayuc”);
Set ss=新的HashSet();
ss.add(s1);ss.add(s2);ss.add(s3);ss.add(s4);}
在这里,s1和s2具有相同的状态,当我使用Set时,我只想保留一个实例。我应该怎么做才能只取实例不相等的对象 您需要重写Student类中的equals()和hashCode()方法。在这个方法中,你定义了两个学生相等意味着什么
@Override
public boolean equals(Object other){
//code to determine if this student is equal to other
}
@Override
public int hashCode() {
//code to generate a hashCode for the student
}
注意这里的建议。您需要重写Student类中的equals()和hashCode()方法。在这个方法中,你定义了两个学生相等意味着什么
@Override
public boolean equals(Object other){
//code to determine if this student is equal to other
}
@Override
public int hashCode() {
//code to generate a hashCode for the student
}
注意这里的建议。您需要覆盖
学生
类中的equals()
和hashCode()
方法
class Student {
...
@Override
public boolean equals(Object obj) {
// Your own logic
// return super.equals(obj); // default
}
@Override
public int hashCode() {
// Your own logic
// return super.hashCode(); // default
}
}
您需要重写
Student
类中的equals()
和hashCode()
方法
class Student {
...
@Override
public boolean equals(Object obj) {
// Your own logic
// return super.equals(obj); // default
}
@Override
public int hashCode() {
// Your own logic
// return super.hashCode(); // default
}
}
实现equals()
和hashCode()
方法。实现equals()
和hashCode()
方法。更改为upvote,“此问题中的建议”位是关键的。更改为upvote,“此问题中的建议”位是关键的。