Collection.addAll()

将指定集合中的所有元素添加到此集(可选操作)

定义

boolean addAll​(Collection<? extends E> c)

参数

参数类型参数名称参数描述
Collectionc要添加元素到集合中的集合
类型参数E集合的元素类型

返回值

如果当前集合因调用而发生变化, 则为 true

抛出的异常

UnsupportedOperationException 如果当前集合不支持 addAll() 操作

ClassCastException 如果指定元素的类阻止它被添加到当前集合中

NullPointerException 如果指定的元素为 null 并且此集合不允许 null 元素

IllegalArgumentException 如果指定元素的某些属性阻止将其添加到此集合中

IllegalStateException 如果由于插入限制, 此时不能添加元素

说明

如果在操作进行时修改了指定的集合, 则此操作的行为未定义. 这意味着如果指定的集合是这个集合, 并且这个集合是非空的, 那么这个调用的行为是未定义的.

示例

将一个集合的全部元素添加到不同集合中的示例

package com.yi21.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;

public class Yi21CollectionAddAll {

    public static void main(String[] args) {
        

        Set<String> s = Set.of("I'm a Collection");

        ArrayList<String> list = new ArrayList<>();
        System.out.println("对象是否是一个集合? " + (list instanceof Collection));
        System.out.println("为集合添加元素:");
        list.addAll(s);
        list.forEach(System.out::println);

        System.out.println("集合添加自身:");

        list.addAll(list);
        list.forEach(System.out::println);

        Set<String> set = Set.of("Yes");
        System.out.println("对象是否是一个集合? " + (set instanceof Collection));
        try {
            set.addAll(s);
        } catch (UnsupportedOperationException e) {
            System.out.println("不支持修改的集合: " + e);
        }

    }

}

执行结果为 :

对象是否是一个集合? true
为集合添加元素:
I'm a Collection
集合添加自身:
I'm a Collection
I'm a Collection
对象是否是一个集合? true
不支持修改的集合: java.lang.UnsupportedOperationException