Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除重复实体_Java - Fatal编程技术网

Java 删除重复实体

Java 删除重复实体,java,Java,我有一个java实体,如下所示: Reason{ long id; long userId; long resId; } 我有一个原因列表,其中一些实例包含相同的userId和resId,但具有不同的id。请任何人帮我列出另一个原因列表,其中不包含与前一个相同的userId和resId 谢谢。有两种方法。一个是,您必须检查所有元素一次,并且每次检查所有其他元素,以相互对照 一种更有效的方法是将所有项复制到一个集合中,但在这种情况下,必须重写equals()方法并比较ID。像这

我有一个java实体,如下所示:

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(节点副本);

您的第一个列表现在不应该包含任何重复项。

我很难理解您的意思。为了清楚起见,你能把你的问题再说一遍吗?