Java 连接两个ArrayList
数组是一些占据相邻内存位置的元素集合,可以是任何类型。我们可以将同一类型的多个元素存储在一起。ArrayList是一个可调整大小的类,与内置的数组不同。一个重要的概念是理解ArrayList如何与普通数组区分开来,因为只有前者允许通过添加或删除元素来进行修改。重要的是,通过java.util包,我们可以轻松访问多种高度功能化的ArrayList,并能执行各种操作。在本文中,我们将演示使用Java语言连接两个ArrayList的不同方法。
语法
import java.util.ArrayList;
ArrayList<String>(object name) = new ArrayList<String>();
addAll()方法的算法
- 步骤1 - 创建一个ArrayList join1。
-
步骤2 - 向列表中添加元素。
-
步骤3 - 打印ArrayList的元素。
-
步骤4 - 创建另一个ArrayList join2。
-
步骤5 - 向列表中添加元素。
-
步骤6 - 打印ArrayList的元素。
-
步骤7 - 使用addAll将join2的元素追加到join1。
-
步骤8 - 打印合并后的ArrayList。
removeAll()/addAll方法的算法
-
步骤1 - 创建一个ArrayList join1。
-
步骤2 - 向列表中添加元素。
-
步骤3 - 打印ArrayList的元素。
-
步骤4 - 创建另一个ArrayList join2。
-
步骤5 - 向列表中添加元素。
-
步骤6 - 打印ArrayList的元素。
-
步骤7 - 创建另一个ArrayList join3。
-
步骤8 - 将join2的元素添加到join3。
-
步骤9 - 删除join1的元素。
-
步骤10 - 使用addAll将join1与join3的元素合并。
-
步骤11 - 打印合并后的ArrayList。
Stream flatMap()方法的算法
-
步骤1 - 创建一个ArrayList join1。
-
步骤2 - 向列表添加元素。
-
步骤3 - 打印ArrayList的元素。
-
步骤4 - 创建另一个ArrayList join2。
-
步骤5 - 向列表添加元素。
-
步骤6 - 打印ArrayList的元素。
-
步骤7 - 在单个流中获取join1和join2的元素。
-
步骤8 - 将流元素收集到ArrayList中。
-
步骤9 - 打印合并的ArrayList。
LinkedHashSet()方法的算法
-
步骤1 - 创建一个ArrayList join1。
-
步骤2 - 向列表添加元素。
-
步骤3 - 打印ArrayList的元素。
-
步骤4 - 创建另一个ArrayList join2。
-
步骤5 - 向列表添加元素。
-
步骤6 - 打印ArrayList的元素。
-
步骤7 - 将列表的项添加到集合中。
-
步骤8 - 将集合转换为ArrayList。
-
步骤9 - 打印合并的数组。
方法
-
方法1 - 使用addAll()方法。
-
方法2 - 使用removeAll() / addAll()方法。
-
方法3 - 使用flatMap()方法。
-
方法4 - 使用LinkedHashSet()方法。
方法1:addAll()方法
在这种方法中,我们创建两个具有不同项的列表,并将一个列表的元素追加到另一个列表中。在这里我们使用addAll()方法。
语法
List1.addAll(List2);
示例
import java.util.ArrayList;
public class ArrayJoinAdd {
public static void main(String[] args) {
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1: " + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2: " + join2);
join1.addAll(join2);
System.out.println("Joined ArrayList: " + join1);
}
}
输出
ArrayList 1: [Way, Two, Class]
ArrayList 2: [Education , comes, first]
Joined ArrayList: [Way, Two, Class, Education , comes, first]
方法2:RemoveAll()/AddAll() 方法
在这种方法中,我们使用两个函数RemoveAll()和AddAll(),我们删除第一个列表中与第二个列表相同的项,然后将第一个列表添加到第二个列表中。
语法
List3.removeAll(List1);
List1.addAll(List3);
示例
import java.util.*;
public class ArrayjoinRemove {
public static void main (String args[]){
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1:" + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2:" + join2);
ArrayList<String> join3 = new ArrayList<>(join2);
join3.removeAll(join1);
join1.addAll(join3);
System.out.println("Joined ArrayList" + join1);
}
}
输出
ArrayList 1:[Way, Two, Class]
ArrayList 2:[Education , comes, first]
[Way, Two, Class, Education , comes, first]
方法3:使用Stream的flatMap()方法
Stream的flatMap()方法可以从多个列表中获取元素,并将流元素收集到ArrayList中。
语法
List<String> (combined array)= Stream.of(List1,List2)
.flatMap(x -> x.stream())
.collect(Collectors.toList());
示例
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.List;
public class ArrayjoinflatMap {
public static void main (String args[]){
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1:" + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2:" + join2);
List<String> finalJoin = Stream.of(join1,join2)
.flatMap(x -> x.stream())
.collect(Collectors.toList());
System.out.println(finalJoin);
}
}
输出
ArrayList 1:[Way, Two, Class]
ArrayList 2:[Education , comes, first]
[Way, Two, Class, Education , comes, first]
方法4:LinkedHashSet()方法
在这种方法中,我们使用LinkedHashSet()创建一个集合,并将元素推入该集合。该集合代表了由所有唯一元素组成的组合arrayList。
语法
Set <String> set = new LinkedHashSet<>(List1);
set.addAll(List2);
ArrayList<String> combinedList = new ArrayList<> (set);
示例
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.List;
public class ArrayjoinLinkedHashSet {
public static void main (String args[]){
ArrayList<String> join1 = new ArrayList<String>();
join1.add("Way");
join1.add("Two");
join1.add("Class");
System.out.println("ArrayList 1:" + join1);
ArrayList<String> join2 = new ArrayList<String>();
join2.add("Education ");
join2.add("comes");
join2.add("first");
System.out.println("ArrayList 2:" + join2);
Set <String> set = new LinkedHashSet<>(join1);
set.addAll(join2);
ArrayList<String> finalJoin = new ArrayList<> (set);
System.out.println(finalJoin);
}
}
输出
ArrayList 1:[Way, Two, Class]
ArrayList 2:[Education , comes, first]
[Way, Two, Class, Education , comes, first]
结论
在上述文章中,我们讨论了一些简单的方法来添加两个或多个ArrayList并打印它们。根据用户的需求,可以使用上述方法来合并这些ArrayList,这意味着如果我们不希望重复项成为合并列表的一部分,可以通过removeAll()和addAll()等方法来消除它们。这些简单的方法使得理解如何加入或合并这些ArrayList变得更容易。