Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.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 使用流从集合/列表中删除重复的自定义对象,而不使用等号 Set responses=someList.stream() .map(角色->新响应(参数1、参数2)) .收集(toSet());_Java_Java Stream - Fatal编程技术网

Java 使用流从集合/列表中删除重复的自定义对象,而不使用等号 Set responses=someList.stream() .map(角色->新响应(参数1、参数2)) .收集(toSet());

Java 使用流从集合/列表中删除重复的自定义对象,而不使用等号 Set responses=someList.stream() .map(角色->新响应(参数1、参数2)) .收集(toSet());,java,java-stream,Java,Java Stream,如果我这样做,那么我将拥有一个包含重复条目的集合/列表。如何避免在响应类中不实现equals方法而产生重复项?根据@Holger的评论,如果param1和param2是独立于someList中的role对象的一些横向参数,您只需检查someList是否为空,并根据需要返回一个空集合或一个只包含元素的集合: Set responses=someList.isEmpty() ? Collections.emptySet() :设置(新响应(参数1,参数2)); 为什么不能实现equals?在无法比较

如果我这样做,那么我将拥有一个包含重复条目的集合/列表。如何避免在响应类中不实现equals方法而产生重复项?

根据@Holger的评论,如果
param1
param2
是独立于
someList
中的
role
对象的一些横向参数,您只需检查
someList
是否为空,并根据需要返回一个空集合或一个只包含元素的集合:

Set responses=someList.isEmpty()
? Collections.emptySet()
:设置(新响应(参数1,参数2));

为什么不能实现
equals
?在无法比较类的情况下,如何检查重复项?您可以使用Comparable,但您只需将所有相等的逻辑放在其中。根据您想要检测重复条目的内容?查找?因此,
param1
param2
role
完全不同?然后只需使用
Collections.singleton(新响应(param1,param2))