如何过滤列表以删除java中具有重复属性的元素?

时间:2014-05-21 15:35:37

标签: java

我想过滤列表以删除具有重复属性的元素,请参阅下面的代码段:

   public class People{
      string name;
      string priority;
      //...getter setter
    }

   list<People> peopleList = //...get a list of people 

在这里,我想展示一个具有唯一名称属性的人员列表,如何操作peopleList?如果有多个People对象具有相同的name,我想检查priority以确定哪一个应该在最终的唯一列表中。希望我很清楚。

1 个答案:

答案 0 :(得分:0)

只需覆盖equals类的People方法,并检查name的相等性。 (我想这里name不能为空)。

public class People{
  string name;
  string priority;
  //...getter setter

 @Override
public boolean equals(Object obj) {
    if (obj instanceof People) {
        return this.name.equals(((People) obj).getName());
    }
    return false;
    }
}

之后,您只需yourList.contains(people)

  • true:存在具有相同名称的People实例;
  • false:没有同名的人。

yourList.indexOf(people)将为您提供列表中同名人物的位置。