Java 删除重复实体
我有一个java实体,如下所示:Java 删除重复实体,java,Java,我有一个java实体,如下所示: Reason{ long id; long userId; long resId; } 我有一个原因列表,其中一些实例包含相同的userId和resId,但具有不同的id。请任何人帮我列出另一个原因列表,其中不包含与前一个相同的userId和resId 谢谢。有两种方法。一个是,您必须检查所有元素一次,并且每次检查所有其他元素,以相互对照 一种更有效的方法是将所有项复制到一个集合中,但在这种情况下,必须重写equals()方法并比较ID。像这
Reason{
long id;
long userId;
long resId;
}
我有一个原因列表,其中一些实例包含相同的userId和resId,但具有不同的id。请任何人帮我列出另一个原因列表,其中不包含与前一个相同的userId和resId
谢谢。有两种方法。一个是,您必须检查所有元素一次,并且每次检查所有其他元素,以相互对照 一种更有效的方法是将所有项复制到一个集合中,但在这种情况下,必须重写
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);
Set noDuplicates=新哈希集(resonList);
resonList.clear();
resonList.addAll(节点副本);
您的第一个列表现在不应该包含任何重复项。我很难理解您的意思。为了清楚起见,你能把你的问题再说一遍吗?