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很可能有一个生成必要代码的快捷方式
然后创建一个集
(即哈希集
),并将这两个列表添加到其中。由于集合不能包含重复的条目,因此最终的集合只包含唯一的成员。如果需要,您可以从集合
创建一个列表