我在java中有一个实体如下:
Reason{
long id;
long userId;
long resId;
}
我有一个Reason列表,其中一些实例包含相同的userId和resId但具有不同的id。任何人都可以帮我制作另一个不包含相同userId和ResId的Reason列表。
感谢。
答案 0 :(得分:1)
有两种方法可以做到这一点。一个是,你必须遍历所有元素一次,并且每次都要遍历所有其他元素,以便相互检查每个元素。
更有效的方法是将所有项目复制到集合中,但在这种情况下,您必须覆盖equals()
方法并比较ID。像这样:
Reason{
long id;
long userId;
long resId;
@Override
public boolean equals(Object obj) {
return obj instanceof Reason && ((Reason) obj).userId == this.userId && ((Reason) obj).resId == resId;
}
}
然后把它放在一个集合中并返回列表:
Set<Customer> noDuplicates = new HashSet<>(resonList);
resonList.clear();
resonList.addAll(noDuplicates);
您的第一个列表现在不应包含任何重复项。