Java 中 AbstractCollection addAll() 方法及示例

2025 年 1 月 6 日 | 阅读 6 分钟

Collections 框架中的 addAll() 方法对于将一个集合的元素批量添加到另一个集合至关重要。该方法实现在 `AbstractCollection` 类中,该类属于 `java.util` 包,并作为 `Collection` 接口的骨架实现。在 `AbstractCollection` 中,addAll() 方法通过迭代指定集合中的每个元素并调用 add() 方法来实现。这意味着 addAll() 操作的行为和效率直接取决于 add() 操作的行为。

方法签名

返回类型:boolean:该方法返回 true/false,一个布尔值。如果集合已更改(即,如果指定集合中的一个或多个元素已成功添加到集合中),则返回 true;如果集合未更改(可能由于多种原因,包括指定集合不包含任何元素,或者指定集合中的元素已在集合中且集合类不允许重复元素),则返回 false。

Collection:这表明该方法接受一个元素集合。Collection 是 Java 集合框架中的根接口,这意味着 addAll() 可以接受任何类型的集合(如 List、Set、Queue 等)。

<? extends E>:这是一个有界通配符。它表示集合可以包含 E 类型或 E 的任何子类型的元素,此通配符提供了灵活性。例如,如果 E 是 Number,则传递给 addAll() 的集合可以包含 Integer、Double 或 Number 的任何其他子类。

示例 1:使用 ArrayList

在此示例中,我们创建一个 ArrayList abs1Strings 来存储字符串元素。

文件名: AbstractCollectionArrayListDemo.java

输出

AbstractCollection 1 (Strings): [Apple, Banana, Cherry]
AbstractCollection 1 (Integers): [10, 20, 30]
AbstractCollection 1 (Doubles): [3.14, 6.28, 9.42]
AbstractCollection 2 (Strings) after addAll: [Apple, Banana, Cherry]
AbstractCollection 2 (Integers) after addAll: [10, 20, 30]
AbstractCollection 2 (Doubles) after addAll: [3.14, 6.28, 9.42]

示例 2:使用 HashSet

在此示例中,我们创建一个 HashSet abs1Strings 来存储字符串元素。

文件名: AbstractCollectionHashSetDemo.java

输出

AbstractCollection 1 (Strings): [Apple, Cherry, Banana]
AbstractCollection 1 (Integers): [20, 10, 30]
AbstractCollection 1 (Doubles): [3.14, 6.28, 9.42]
AbstractCollection 2 (Strings) after addAll: [Apple, Cherry, Banana]
AbstractCollection 2 (Integers) after addAll: [20, 10, 30]
AbstractCollection 2 (Doubles) after addAll: [3.14, 6.28, 9.42]

示例 3:使用 LinkedList

在此示例中,我们创建一个 LinkedList abs1Strings 来存储字符串元素。

文件名: AbstractCollectionLinkedListDemo.java

输出

AbstractCollection 1 (Strings): [Monday, Tuesday, Wednesday]
AbstractCollection 1 (Integers): [1, 2, 3]
AbstractCollection 1 (Doubles): [3.14, 6.28, 9.42]
AbstractCollection 2 (Strings) after addAll: [Monday, Tuesday, Wednesday]
AbstractCollection 2 (Integers) after addAll: [1, 2, 3]
AbstractCollection 2 (Doubles) after addAll: [3.14, 6.28, 9.42]

应用

1. 数据处理和聚合

在数据处理应用程序中,您可能需要从多个源或处理阶段聚合数据。addAll() 方法通过允许您将结果合并到单个集合中,简化了此任务。

2. 并发和并行处理

在并发或并行处理场景中,您可能拥有多个线程并发生成数据。addAll() 方法提供了一种安全的方式将数据合并到共享集合中。

3. 数据迁移和集成

在数据迁移或集成任务期间,您可能需要将数据传输到不同的系统或格式。addAll() 方法通过允许您将各种源的数据合并到统一的集合中,促进了此过程。