如何合并/聚合两个具有List <customtype>的java对象作为一个成员?

时间:2018-05-24 10:37:21

标签: java arraylist

如何将两个java对象的内容合并为一个?如果内容相同则应覆盖,如果内容不同,则应更新新内容。例如我有以下架构:

class A {
String id;
String response;
List<XYZ> slots;
}

XYZ还包含一些数据和列表。现在,如果我得到两个不同的A对象,其中包含不同的槽值。我怎样才能将它们组合成一个?即使它结合但不允许重复。

1 个答案:

答案 0 :(得分:0)

在XYZ类中,您可以使用自己的逻辑覆盖equals方法来比较两个XYZ对象。

@Override
    public boolean equals(Object obj) {
        if(obj instanceof XYZ)
        {
            XYZ objXYZ = (XYZ) obj;
            //here u can write your own logic to compare two XYZ objects and return true if satisfied else return false
            return this.id == objXYZ.id;
        }
        else
            return false;
    }

然后您可以使用contains方法检查列表,同时将其添加到列表中。

if(!slots.contains(newXYZ))
    slots.add(newXYZ)