【问题标题】:Java- How can I add a list of objects to another list of ObjectsJava-如何将对象列表添加到另一个对象列表中
【发布时间】:2020-06-16 03:50:19
【问题描述】:

场景:得到两个列表如下:

List<Object[]> listOne = null;
List<Object[]> listTwo = null;

在每个返回兼容类型列表的列表上调用aMethod(见底部)

listOne = aMethod(arg1, arg2, arg3);
listTwo = aMethod(argx, argy, argz);

当我尝试时

listOne.add(listTwo);

我收到有关添加功能的错误。建议使用 addAll(),由于我的原因我不能使用。那么,任何人都知道如何将对象列表 [] 添加到另一个对象列表 [] 中?谢谢。

public List<Object[]> aMethod(a1, a2, a3) {
        List<Object[]> aList = service.getSomeinfo();
        return aList;
    }

【问题讨论】:

  • 您的问题不清楚——您想将第二个列表的所有项目添加到第一个列表中吗?
  • 目前,listOne = aMethod(arg1, arg2, arg3);是代码的一部分。它被处理为 for(Object[] obj : listOne) 。想知道如果我使用 addAll(),for(Object[] obj : listOne) 会像以前一样工作吗?
  • 为什么不能使用 addAll() ?

标签: java list object add


【解决方案1】:

如果你不想使用 addAll() 方法,那么@Shubbi 你可以像这样通过迭代添加对象数组的第二个列表:

for(Object[] o:listTwo){
    listOne.add(o);
}

如果您使用 Java 8 或更高版本,还有另一种方法,使用 Stream Api 也非常有效

listOne = Stream.concat(listOne.stream(), listTwo.stream())
                .collect(Collectors.toList());  

【讨论】:

    【解决方案2】:

    使用Stream

    listOne = Stream.concat(listOne.stream(), listTwo.stream())
                             .collect(Collectors.toList());
    

    https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html

    【讨论】:

      【解决方案3】:

      您可以使用 list 的 addAll 函数将一个数组的所有元素添加到另一个数组。

      listOne.addAll(listTwo);
      
      

      listOne 将包含两个列表中的元素。
      您可以将两个列表都添加到第三个列表中:

      List<Object[]> listThree = new ArrayList<Object[]>(listOne);
      listThree.addAll(listTwo);
      

      参考:https://docs.oracle.com/javase/8/docs/api/java/util/List.html#addAll-java.util.Collection-

      【讨论】:

      • 如上所述,您可以将listOne和listTwo都添加到listThree中。它不会对其他两个列表产生任何影响。
      • if listOne.addAll(listTwo);然后 listThree.addAll(listTwo);不会是必要的。对吗?
      • @Shubbi 以上两种完全是两种不同的添加或合并两个列表的方式。请不要将它们组合成一个例子。
      • 第一个在 listOne 中添加两个列表。第二个将两个列表都添加到 listThree 中。选择第一个或第二个
      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 2014-02-17
      相关资源
      最近更新 更多