Java 数据容器之 Collection 体系 addAll 方法(Collection.addAll 方法、Collections.addAll 方法)

一、Collection.addAll 方法

1、基本介绍
  • Collection.addAll 方法用于将指定集合中的所有元素添加到当前集合中
boolean addAll(Collection<? extends E> c);
参数说明
cCollection 集合
  • 返回值:如果调用此方法后集合发生了变化,则返回 true,否则返回 false
2、演示
  1. List 调用 addAll 方法
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");

List<String> list2 = new ArrayList<>();
list2.add("C");
list2.add("D");

boolean result = list1.addAll(list2);

System.out.println(list1);
System.out.println(result);
# 输出结果

[A, B, C, D]
true
  1. List 调用 addAll 方法,传入空集合
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");

List<String> list2 = new ArrayList<>();

boolean result = list1.addAll(list2);

System.out.println(list1);
System.out.println(result);
# 输出结果

[A, B]
false
  1. Set 调用 addAll 方法
Set<String> set1 = new HashSet<>();
set1.add("A");
set1.add("B");

Set<String> set2 = new HashSet<>();
set2.add("C");
set2.add("D");

boolean result = set1.addAll(set2);

System.out.println(set1);
System.out.println(result);
# 输出结果

[A, B, C, D]
true
  1. Set 调用 addAll 方法,传入空集合
Set<String> set1 = new HashSet<>();
set1.add("A");
set1.add("B");

Set<String> set2 = new HashSet<>();

boolean result = set1.addAll(set2);

System.out.println(set1);
System.out.println(result);
# 输出结果

[A, B]
false
  1. Set 调用 addAll 方法,传入含有相同元素的集合
Set<String> set1 = new HashSet<>();
set1.add("A");
set1.add("B");

Set<String> set2 = new HashSet<>();
set2.add("A");
set2.add("B");

boolean result = set1.addAll(set2);

System.out.println(set1);
System.out.println(result);
# 输出结果

[A, B]
false
3、注意事项
  1. 不可变集合调用 addAll 方法,会抛出 UnsupportedOperationException 异常
List<String> immutableList = Collections.unmodifiableList(
        new ArrayList<>(Arrays.asList("A", "B"))
);

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");

boolean result = immutableList.addAll(list);

System.out.println(immutableList);
System.out.println(result);
# 输出结果

Exception in thread "main" java.lang.UnsupportedOperationException
  1. 可变集合调用 addAll 方法,传入不可变集合,正常工作
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");

List<String> immutableList = Collections.unmodifiableList(
        new ArrayList<>(Arrays.asList("C", "D"))
);

boolean result = list.addAll(immutableList);

System.out.println(list);
System.out.println(result);
# 输出结果

[A, B, C, D]
true

二、Collections.addAll 方法

1、基本介绍
  • Collections.addAll 方法用于将指定元素添加到指定集合中
static <T> boolean addAll(Collection<? super T> c, T... elements)
参数说明
cCollection 集合
elements指定元素
  • 返回值:如果调用此方法后集合发生了变化,则返回 true,否则返回 false
2、演示
  1. List 调用 addAll 方法
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");

boolean result = Collections.addAll(list, "C", "D");

System.out.println(list);
System.out.println(result);
# 输出结果

[A, B, C, D]
true
  1. List 调用 addAll 方法,传入空数组
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");

String[] array = {};
boolean result = Collections.addAll(list, array);

System.out.println(list);
System.out.println(result);
# 输出结果

[A, B]
false
  1. Set 调用 addAll 方法
Set<String> set = new HashSet<>();
set.add("A");
set.add("B");

String[] array = {"C", "D"};
boolean result = Collections.addAll(set, array);

System.out.println(set);
System.out.println(result);
# 输出结果

[A, B, C, D]
true
  1. Set 调用 addAll 方法,传入含有相同元素的数组
Set<String> set = new HashSet<>();
set.add("A");
set.add("B");

String[] array = {"A", "B"};
boolean result = Collections.addAll(set, array);

System.out.println(set);
System.out.println(result);
# 输出结果

[A, B]
false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值