我们如何从Array List中删除重复的条目

时间:2015-04-05 18:10:25

标签: java

我们如何从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对象,不应删除其他对象。

2 个答案:

答案 0 :(得分:3)

您应该首先覆盖Object.equals中的Student(通过测试确定相等的字段)。接下来,使用Set来防止重复(LinkedHashSet,例如,保留插入顺序)。

答案 1 :(得分:2)

使用Set界面可避免重复值。 The Set Interface

Example of Duplicate value