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更容易。