首页 > 解决方案 > 在java8中添加两个列表?

问题描述

我正在尝试在 java 8 中将两个列表一起添加。两个列表都来自 json 中的单独对象,但我想在 java 代码中将它们一起放入一个新对象中。

我试过 listUtils.union 但这会作为两个数组添加到新对象中。addAll 方法和流 .concat() 也给出错误。

例子:

json有:

“对象 1”:[{ 测试:“2”}]

“对象 2”:[{ 测试:“2”}]

尝试将哈希映射添加到对象“newobject”中,但我必须调用方法来获取新列表。

例如 :

Newlist = listUtils.Union(addobject1(), addObject1) (这些是从 json 返回我的列表的方法名称。

放(“新对象”,新列表)

有什么建议么 ?

标签: javaarraysliststreamconcat

解决方案


根据 JSON 字符串,您有一些 POJO 的列表:

class MyPojo {
    private final String test;

    public MyPojo(String t) {this.test = t; }

    public String getTest() {return test; }

    @Override
    public String toString() {
        return "{ test: " + test + "}";
    }
}

然后object1object2是输入列表,有几种方法可以合并它们:

  1. 使用Stream.concat
Stream.concat(object1.stream(), object2.stream()).collect(Collectors.toList());
  1. 使用Stream.of
Stream.of(object1, object2)
      .flatMap(List::stream)
      .collect(Collectors.toList());
  1. 使用addAll
List<MyPojo> result = new ArrayList<>(object1);
result.addAll(object2);
  1. 列表的流式列表
Arrays.asList(object1, object2)
      .stream()
      .flatMap(List::stream)
      .collect(Collectors.toList());

推荐阅读