java - 如何在 Java 中组合两个列表

标签 java algorithm

我有两组相同的结构。我想按 id 字段组合它们。 应在特定字段上进行组合(对于 l1 Num2 和 l2 Num1)所有其他字段不应更改。

  List<MyClass> l1=[{id = 1 , num1 = 3 , num2 = 0 , name = "yoyo"},
                      {id = 2 , num1 = 9 , num2 = 0 , name = "lolo"},
                      {id = 3 , num1 = 4 , num2 = 0 , name = "bobo"},
                      {id = 8 , num1 = 2 , num2 = 0 , name = "toto"}];

    List<MyClass> l2=[{id = 1 , num1 = 0 , num2 = 3 , name = "yoyo"}, 
                      {id = 2 , num1 = 0 , num2 = 7 , name = "lolo"},
                      {id = 3 , num1 = 0 , num2 = 8 , name = "bobo"},
                      {id = 6 , num1 = 0 , num2 = 7 , name = "zozo"}];

  //  i want to combine the lists to get l3 like this one
    list<MyClass> l3=[{id = 1 , num1 = 3 , num2 = 3 , name = "yoyo"}, 
                      {id = 2 , num1 = 9 , num2 = 7 , name = "lolo"},
                      {id = 3 , num1 = 4 , num2 = 8 , name = "bobo"},
                      {id = 8 , num1 = 2 , num2 = 0 , name = "toto"},
                      {id = 6 , num1 = 0 , num2 = 7 , name = "zozo"}];

最佳答案

l3.addall(l1);
for(int i=0;i<l2.size();i++){
   for(int j=0;j<l3.size();j++){
      if(l2.get(i).id!=l3.get(j).id)
          l3.add(l2.get(i);
      else{
         l3.get(j).num2=l2.get(i).num2;
      }
   }
}

关于java - 如何在 Java 中组合两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40134553/

相关文章:

java - JAXB/MOXy 调整 XMLElementWrapper

java - 在给定秒数后中断 HTTP 请求

java - 如何检测 Activity 边界外的触摸事件

java - 使用itext从pdf中提取数学文本

algorithm - 查找特定除数的 CRC 冲突

java - JPA 选择(选择)

string - Levenshtein(编辑)距离归一化的差异?

c++ - 生成二维非退化点集 - C++

algorithm - 循环运行日志时间时的复杂性

algorithm - 快速计算 n! mod m 其中 m 是素数?