MST

星途 面试题库

面试题:Java中Collection接口常用方法的区别

请阐述Java中Collection接口的add()、addAll()方法在功能和使用场景上有什么区别,并举例说明。
45.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 功能区别
    • add(E e)
      • 功能:用于向集合中添加单个元素。如果集合成功添加了该元素,则返回true;如果集合因为某些限制(例如集合不允许重复元素且该元素已存在)未能添加元素,则返回false
    • addAll(Collection<? extends E> c)
      • 功能:用于将指定集合中的所有元素添加到当前集合中。如果当前集合因为调用这个方法发生了改变(即成功添加了至少一个元素),则返回true;否则返回false
  2. 使用场景区别
    • add(E e)
      • 场景:当需要逐个添加元素到集合中时使用。例如,在遍历一个数组并将数组元素逐个添加到集合的场景下比较适用。
    • addAll(Collection<? extends E> c)
      • 场景:当需要批量添加元素,即一次性将另一个集合的所有元素添加到当前集合时使用。比如,将一个临时集合中的所有数据添加到主集合中。
  3. 示例代码
import java.util.ArrayList;
import java.util.Collection;

public class CollectionAddExample {
    public static void main(String[] args) {
        Collection<String> collection1 = new ArrayList<>();
        Collection<String> collection2 = new ArrayList<>();

        // 使用add方法添加单个元素
        boolean result1 = collection1.add("element1");
        System.out.println("add单个元素返回结果: " + result1);

        // 使用addAll方法添加另一个集合的所有元素
        collection2.add("element2");
        collection2.add("element3");
        boolean result2 = collection1.addAll(collection2);
        System.out.println("addAll批量添加元素返回结果: " + result1);

        System.out.println("collection1: " + collection1);
    }
}

在上述代码中,首先使用add方法向collection1添加单个元素,然后使用addAll方法将collection2中的所有元素添加到collection1中。通过观察返回结果和最终collection1的内容,可以更直观地理解这两个方法的区别。