如何在 Java 中连接两个ArrayList

原文:https://www.studytonight.com/java-examples/how-to-join-two-arraylist-in-java

在这篇文章中,我们将在 Java 中加入两个ArrayList。ArrayList 是集合框架中 List 接口的实现类,用于存储数据。

连接两个ArrayList实际上是将两个ArrayList元素组合成一个ArrayList的过程。当我们有多个数据流并希望将它们收集到一个流中时,这很有帮助。

为了加入ArrayList,我们使用了列表的 addAll()方法和流 API 的 flatMap()方法。

addAll()方法 add 用于将一个ArrayList的元素添加到另一个ArrayList中,并接受一个参数。让我们看看例子。

举例时间:

让我们创建一个连接两个ArrayList的例子。这里我们使用addAll()方法,并将 arrList2 作为一个参数传递给,看到我们将所有元素放入一个 ArrayList 中。

import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args){
        ArrayList<Integer> arrList1 = new ArrayList<>();
        arrList1.add(1030);
        arrList1.add(1020);
        arrList1.add(1010);
        arrList1.add(1040);
        System.out.println(arrList1);
        // Join two ArrayList
        ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
        System.out.println(arrList2);
        arrList1.addAll(arrList2);
        System.out.println("After Joining:");
        System.out.println(arrList1);

    }
}

【1030、1020、1010、1040】 【1050、1060、1070】 加入后: 【1030、1020、1010、1040、1050、1060、1070】

示例:

您也可以使用 Java 流来组合两个ArrayList元素。这里,我们使用流的 flatMap()方法,将所有元素收集到一个流中并返回一个列表。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args){
        ArrayList<Integer> arrList1 = new ArrayList<>();
        arrList1.add(1030);
        arrList1.add(1020);
        arrList1.add(1010);
        arrList1.add(1040);
        System.out.println(arrList1);
        // Join two ArrayList
        ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1060,1070));
        System.out.println(arrList2);
        List<Integer> arrList3 = Stream.of(arrList1, arrList2)
                .flatMap(x -> x.stream())
                .collect(Collectors.toList());

        System.out.println("After Joining:");
        System.out.println(arrList3);

    }
}

【1030、1020、1010、1040】 【1050、1060、1070】 加入后: 【1030、1020、1010、1040、1050、1060、1070】

示例:连接唯一元素

如果您只想从两个不同的ArrayList中收集唯一的元素,那么您可以将 distinct()方法与 flatMap()一起使用,该方法返回唯一元素的列表。请看下面的例子。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args){
        ArrayList<Integer> arrList1 = new ArrayList<>();
        arrList1.add(1030);
        arrList1.add(1020);
        arrList1.add(1010);
        arrList1.add(1040);
        System.out.println(arrList1);
        // Join two ArrayList
        ArrayList<Integer> arrList2 = new ArrayList<>(Arrays.asList(1050,1030,1070));
        System.out.println(arrList2);
        List<Integer> arrList3 = Stream.of(arrList1, arrList2)
                                    .flatMap(Collection::stream)
                                    .distinct()
                                    .collect(Collectors.toList());
        System.out.println("After Joining:");
        System.out.println(arrList3);

    }
}

【1030、1020、1010、1040】 【1050、1030、1070】 加入后: 【1030、1020、1010、1040、1050、1070】