我遇到了同样的情况,我想出了使用SortedSet的解决方案.在这种情况下,那些导致set的比较器返回0的对象只会在Set中插入一次.
这是一个例子:
SortedSet persons = new TreeSet(new Comparator() {
@Override
public int compare(Person arg0, Person arg1) {
return arg0.getName().compareTo(arg1.getName());
}
});
现在,如果您将Person插入您的人员,则不会插入重复项(基于其名称属性).
所以你可以在你的列表上进行迭代< Person>并将其中的每个项目插入您的人员集合中,并确保您不会有任何重复项目.所以剩下的就像:
Iterator iterator = people.iterator();
while(iterator.hasNext()) {
persons.add(iterator.next());
}
people.clear();
people.addAll(persons); //Now, your people does not contain duplicate names