Java中的AbstractList addAll()方法示例

Java中的AbstractList addAll()方法示例

java.util.AbstractList类中的 addAll() 方法用于将指定集合中的所有元素插入到此列表的指定位置。

  • 这将使当前在该位置的元素(如果有)和任何后续元素向右移动(增加它们的索引)。
  • 新元素将按指定集合的迭代器返回它们的顺序显示在列表中。
  • 如果在操作进行时修改了指定的集合,则此操作的行为是未定义的。

此实现获取指定集合上的迭代器并对其进行迭代,使用 add(int, E) 将从迭代器获得的元素一个接一个地插入到此列表中的适当位置。许多实现会为了效率而覆盖此方法。

语法:

public boolean addAll(int index, Collection c)

参数: 此方法将以下参数作为参数。

  • index- 要从指定集合中插入第一个元素的索引
  • c- 包含要添加到此列表中的元素的集合
  • 返回值: 如果此列表因调用而更改,则此方法返回true。

  • 异常: 此方法会抛出以下异常。

    • NullPointerException – 如果指定的集合包含一个或多个null元素并且此列表不允许null元素,或者指定的集合为null,则会抛出该异常。
    • IndexOutOfBoundsException – 如果索引超出范围(索引大小())则会抛出该异常。

下面是举例说明 addAll() 方法的示例。

示例1:

// Java程序演示
// addAll()方法
// 适用于String值
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            // 创建AbstractList<String>对象
            AbstractList<String>
                arrlist1 = new ArrayList<String>();
  
            // 填充arrlist1
            arrlist1.add("A");
            arrlist1.add("B");
            arrlist1.add("C");
            arrlist1.add("D");
            arrlist1.add("E");
  
            // 输出arrlist1
            System.out.println("原始ArrayList列表 : "
                               + arrlist1);
  
            // 创建另一个AbstractList<String>对象
            AbstractList<String>
                arrlist2 = new ArrayList<String>();
  
            // 填充arrlist2
            arrlist2.add("X");
            arrlist2.add("Y");
            arrlist2.add("Z");
  
            // 输出arrlist2
            System.out.println("待添加的ArrayList元素 : "
                               + arrlist2);
  
            // 从索引2开始,使用addAll()方法添加指定元素
            boolean value = arrlist1.addAll(2, arrlist2);
  
            // 输出添加结果
            System.out.println("添加操作是否成功 : "
                               + value);
  
            // 输出新的arrlist
            System.out.println("新的ArrayList : "
                               + arrlist1);
        }
  
        catch (NullPointerException e) {
            System.out.println("抛出异常 : " + e);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("抛出异常 : " + e);
        }
    }
}
原始ArrayList列表 : [A, B, C, D, E]
待添加的ArrayList元素 : [X, Y, Z]
添加操作是否成功 : true
新的ArrayList : [A, B, X, Y, Z, C, D, E]

例子2: NullPointerException的情况

// Java程序演示
// addAll()方法
// 用于演示NullPointerException
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
        try {
  
            // 创建AbstractList<String>对象
            AbstractList<String>
                arrlist1 = new ArrayList<String>();
  
            // 填充arrlist1
            arrlist1.add("A");
            arrlist1.add("B");
            arrlist1.add("C");
            arrlist1.add("D");
            arrlist1.add("E");
  
            // 打印arrlist1
            System.out.println("Original ArrayListlist : "
                               + arrlist1);
  
            // 创建AbstractList<String>的另一个对象
            AbstractList<String> arrlist2 = null;
  
            // 打印arrlist2
            System.out.println("ArrayList to be added : "
                               + arrlist2);
  
            // 添加指定元素
            // 从索引2开始
            // 使用addAll()方法
            System.out.println("\nTrying to get"
                               + " the null collection");
            boolean value = arrlist1.addAll(2, arrlist2);
  
            // 打印该值
            System.out.println("operation successful : "
                               + value);
  
            // 打印新的arrlist
            System.out.println("New ArrayList : "
                               + arrlist1);
        }
  
        catch (NullPointerException e) {
            System.out.println("Exception thrown : " + e);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Original ArrayListlist : [A, B, C, D, E]
ArrayList to be added : null

Trying to get the null collection
Exception thrown : java.lang.NullPointerException

Example 3: 对于IndexOutOfBoundsException

// Java程序示例
// 使用addAll()方法
// 演示IndexOutOfBoundsException异常
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {

        try {

            // 创建AbstractList<String>对象
            AbstractList<String>
                arrlist1 = new ArrayList<String>();

            // 填充arrlist1
            arrlist1.add("A");
            arrlist1.add("B");
            arrlist1.add("C");
            arrlist1.add("D");
            arrlist1.add("E");

            // 输出arrlist1
            System.out.println("原始ArrayList列表 : "
                                   + arrlist1);

            // 创建另一个AbstractList<String>对象
            AbstractList<String>
                arrlist2 = new ArrayList<String>();

            // 填充arrlist2
            arrlist2.add("X");
            arrlist2.add("Y");
            arrlist2.add("Z");

            // 输出arrlist2
            System.out.println("要添加的ArrayList元素 : "
                                   + arrlist2);

            // 从索引2开始
            // 使用addAll()方法添加指定的元素
            System.out.println("\n尝试将超出范围的索引放入");
            boolean value = arrlist1.addAll(-1, arrlist2);

            // 输出结果
            System.out.println("操作成功 : "
                                   + value);

            // 输出新的arrlist
            System.out.println("新的ArrayList : " + arrlist1);
        }

        catch (NullPointerException e) {
            System.out.println("抛出异常 : " + e);
        }

        catch (IndexOutOfBoundsException e) {
            System.out.println("抛出异常 : " + e);
        }
    }
}
原始ArrayList列表 : [A, B, C, D, E]
要添加的ArrayList元素 : [X, Y, Z]

尝试将超出范围的索引放入 
抛出异常 : java.lang.IndexOutOfBoundsException: Index: -1, Size: 5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程