文章只是记录个人笔记,觉得好的文章借鉴学习,丰富经验,加油呀
1、使用addAll方法:最简单的一种方法,是一个集合类的方法,用于将一个集合的所有元素添加到另一个集合中,可以使用addAll
方法将 一个集合的所有元素添加到另一个集合中。
这种方法会修改原始集合。
语法:
boolean addAll(Collection<? extends E> c)
其中,Collection
是指要添加当前集合的元素的集合,E是集合中的元素类型。。返回布尔值,表示是否成功添加了元素。此方法可以用于LIst、Set、Queue 等集合类。它会将集合的元素逐个添加到集合的末尾,保持原有的顺序。如果指定的集合发生变化,对当前集合的影响是未知的。
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
boolean result = list1.addAll(list2);
System.out.println("是否成功添加元素:" + result);
System.out.println("合并后的集合:" + list1);
输出结果:
是否成功添加元素:true
合并后的集合:[1, 2, 3, 4, 5, 6]
注意:addAll
方法会修改原始集合,所以在使用之前确保希望修改原始集合
2、使用Stream API:使用Stream API可以更灵活地合并集合,可以进行过滤、映射等操作。例如
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<Integer> mergedList = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList());
这里使用了 Stream.concat
方法将两个流合并为一个流,然后使用 collect
方法将结果收集到一个列表中。
3、使用Apache Commons Collections 库:如果使用Apache Commons Collections 库,可以使用CollectionUtils.union方法来合并集合
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<Integer> mergedList = new ArrayList<>(CollectionUtils.union(list1, list2));
这种方法会返回一个新的合并后的列表。
pom:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5));
Collection<Integer> mergedCollection = CollectionUtils.union(list1, list2);
System.out.println("合并后的集合:" + mergedCollection);
输出结果:合并后的集合:[1, 2, 3, 4, 5]
注意:CollectionUtils.union方法返回的是一个新的集合,不会修改原始集合。需要引入Apache Commons Collections 库才能使用CollectionUtils.union方法
文档参考原地址:合并集合的方法 - 知乎