合并不带双副本的对象列表,并保留Java中所有相同对象的所有字段值

合并不带双副本的对象列表,并保留Java中所有相同对象的所有字段值,java,arraylist,comparator,icomparable,Java,Arraylist,Comparator,Icomparable,我有两个物体的排列列表,比如 ArrayList<Record> dataSetOne; ArrayList<Record> dataSetTwo; 所以,在第一个ArrayList(即dataSetOne)中,我将获得与家庭地址相关的记录数据详细信息 public class Record{ id = emp01; name = andy; HomeAdrress = mexico; } public class Record{ id = emp

我有两个物体的排列列表,比如

ArrayList<Record>  dataSetOne;
ArrayList<Record>  dataSetTwo;

所以,在第一个ArrayList(即dataSetOne)中,我将获得与家庭地址相关的记录数据详细信息

public class Record{
  id = emp01;
 name = andy;
 HomeAdrress = mexico;
}
public class Record{
   id = emp01;
   name = andy;
   officeAdrress = california;
}

在第二个ArrayList中,即DataSetwo,我将获得与办公室地址相关的记录数据详细信息

public class Record{
  id = emp01;
 name = andy;
 HomeAdrress = mexico;
}
public class Record{
   id = emp01;
   name = andy;
   officeAdrress = california;
}

因此,我需要合并这两个arraylist,并将id作为主要id的记录合并,然后获得家庭和办公室地址,如下所示

public class Record{
  id = emp01;
   name = andy;
  HomeAdrress = mexico;
   officeAdrress = california;
}
谢谢

导入java.util.*;
/*在此处定义您的不完整记录错误*/
类不完全RecordException扩展异常{
不完全记录异常(){
超级(“您的记录不完整,重要数据丢失!”);
}
}
/* */
课堂记录{
公共int id;
公共字符串名称;
公共字符串地址;
公职人员;
}
公共类应用程序{
公共静态void main(字符串[]args){
ArrayList arrList1=新的ArrayList();
ArrayList arrList2=新的ArrayList();
/*用元素填充上面的列表*/
ArrayList merged=新的ArrayList();
对于(int i=0;i
记录类别必须为:

class Record{
  public int id;
  public String name;
  public String homeAddress;
  public String officeAdrress;
  }
主要功能:

public static void main(String[] args) {
    ArrayList<Record> merged = new ArrayList<>();
    Record r;
    for(int i = 0; i < dataSetOne.size(); i++) {
       for(int j = 0; j < dataSetTwo.size(); j++){
         if(dataSetOne.get(i).id == dataSetTwo.get(j).id){
           r = new Record();
           r.id = dataSetOne.get(i).id;
           r.name=dataSetOne.get(i).name;
           r.homeAddress = dataSetOne.get(i).homeAddress;
           r.officeAdrress = dataSetTwo.get(j).officeAdrress;
           merged.add(r);
         }
       }
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList merged=新的ArrayList();
记录r;
对于(int i=0;i
好的,现在您是否尝试了一些方法来实现您的目标?因此,它不是一个编码服务,我们可以帮助您,但不能完全为您完成它。我们可以迭代
dataSetOne
,并创建一个键入者
id
。然后遍历
datasetwo
,并使用Java8中添加的方法。