Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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_Java Stream - Fatal编程技术网

Java 比较和合并列表中的对象

Java 比较和合并列表中的对象,java,java-stream,Java,Java Stream,我有一门课: class CustomDetail{ String version; List<String> details; } 类自定义详细信息{ 字符串版本; 列出详情; } 通过某种方法,我得到了CustomDetail列表,如 List<CustomDetails> resultList resultList.get(0) => CustomDetail("V1", {"123"}) resultList.get(1) => Custom

我有一门课:

class CustomDetail{
 String version;
 List<String> details;
}
类自定义详细信息{
字符串版本;
列出详情;
}
通过某种方法,我得到了CustomDetail列表,如

List<CustomDetails> resultList 
resultList.get(0) => CustomDetail("V1", {"123"})
resultList.get(1) => CustomDetail("V1", {"456"})
...
resultList.get(9) => CustomDetail("B", {"atr"})
resultList.get(10) => CustomDetail("B", {"atr1"})
resultList.get(11) => CustomDetail("B", {"atr3"})
列表结果列表
resultList.get(0)=>CustomDetail(“V1”,{“123”})
resultList.get(1)=>CustomDetail(“V1”,{“456”})
...
resultList.get(9)=>CustomDetail(“B”,{“atr”})
resultList.get(10)=>CustomDetail(“B”,{“atr1”})
resultList.get(11)=>CustomDetail(“B”,{“atr3”})
此列表中的CustomDetails可能包含相同的vers fild

我需要合并这些对象,比如:

List<CustomDetails> newList = ...
newList.get(0)=> CustomDetail("V1", {"123", "456"})
newList.get(1)=> CustomDetail("B", {"atr", "atr1", "atr3"})
List newList=。。。
get(0)=>CustomDetail(“V1”、{“123”、“456”})
get(1)=>CustomDetail(“B”,“atr”,“atr1”,“atr3”})

有什么办法吗?

首先在
CustomDetail
上实现
equals
hashCode
。您的IDE很可能有一个生成必要代码的快捷方式

然后创建一个
(即
哈希集
),并将这两个列表添加到其中。由于集合不能包含重复的条目,因此最终的集合只包含唯一的成员。如果需要,您可以从
集合
创建一个
列表