This question already has answers here:
Removing Duplicate Values from ArrayList
(17个答案)
5年前关闭。
我们如何从StudentList对象删除重复的条目。在这里我们可以根据录入顺序确定学生是否重复。
这是执行类。
我想知道哪种方法最好从StudentList删除所有重复的条目。
如果两个或多个条目与此处相同,则此处为重复项
这代表isActive位,如果在我们的列表中继续设置相同的位,则需要删除该对象。那里s4对象应该被删除没有其他对象应该被删除。
(17个答案)
5年前关闭。
我们如何从StudentList对象删除重复的条目。在这里我们可以根据录入顺序确定学生是否重复。
class Student
{
String name;
long phone;
String address;
boolean isActive;
Student(String name, long phone, String address, boolean isActive)
{
this.name = name;
this.phone = phone;
this.address = address;
this.isActive = isActive;
}
}
这是执行类。
class CollegeMgmt
{
public static void main(String s[])
{
ArrayList<Student> studentList = new ArrayList<Student>();
Student s1 = new Student("devid", 9898989898L, "Stainford d23", true);
studentList.add(s1);
Student s2 = new Student("sames", 9895555598L, "Stainford d23", true);
studentList.add(s2);
Student s3 = new Student("devid", 9898989898L, "Stainford d23", false);
studentList.add(s3);
Student s4 = new Student("devid", 9898989898L, "Stainford d23", false);
studentList.add(s4);
Student s5 = new Student("devid", 9898989898L, "Stainford d23", true);
studentList.add(s5);
}
}
我想知道哪种方法最好从StudentList删除所有重复的条目。
如果两个或多个条目与此处相同,则此处为重复项
Student s3 = new Student("devid", 9898989898L, "Stainford d23", false);
studentList.add(s1);
Student s4 = new Student("devid", 9898989898L, "Stainford d23", false);
studentList.add(s1);
这代表isActive位,如果在我们的列表中继续设置相同的位,则需要删除该对象。那里s4对象应该被删除没有其他对象应该被删除。
最佳答案
您可能应该首先覆盖Object.equals
中的Student
(通过测试确定相等性的字段)。接下来,使用Set
防止重复(例如,LinkedHashSet
保留插入顺序)。