繁体   English   中英

如何合并/聚合具有列表的两个Java对象 <customType> 作为一名成员?

[英]How to merge/aggregate two java objects having List<customType> as one member?

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

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

XYZ还包含一些数据并再次列出。 现在,如果我得到A的两个不同对象,其中具有不同的slot值。 如何将它们组合成一个? 即使其成为联合,但不允许重复。

在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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM