如何在 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】