我有一个Object Person(id,name)。
public class Person {
/** Personid. **/
private Long personId;
/** Person Adresse. **/
private String adresse
// Getters, Setters
如何使用CollectionUtils删除重复的人(具有相同的ID)? 例如Person1(10,aaaa),Person2(10,bbbb),Person3(20,cccc) 结果=> Person1(10,aaaa),Person3(30,cccc)
编辑:
此解决方案使用Set和overrinding equals和hashcode:
List<Person> oldPerson = new ArrayList<>();
//oldPerson.add ...
Set<Person> newPerson = new HashSet<>(oldPerson);
List<Person> theRightPerson = new ArrayList<>(newPerson);
我正在寻找的解决方案是:
List<Person> theRightPerson = (List<Person>) CollectionUtils.collect(oldPerson, new Transformer() {
@Override
public Object transform(Object input) {
// TODO Auto-generated method stub
return null;
}
})
答案 0 :(得分:0)
重写equals和hashcode方法并使用HashSet会更容易。如果您无法编辑类的来源,则需要迭代列表并根据条件比较每个项目。
How to remove duplicate objects in a List<MyObject> without equals/hashcode?