合并集合的方法

文章只是记录个人笔记,觉得好的文章借鉴学习,丰富经验,加油呀

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方法

文档参考原地址:合并集合的方法 - 知乎

​​​​​​​

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值