Java ArrayList toArray()方法及示例

ArrayList类toArray()方法

语法:

    public Object[] toArray();
    public T[] toArray(T[] elements);
  • toArray()方法在java.util包中可用。

  • toArray()方法用于将给定的Arraylist转换为数组,换句话说,该方法用于返回包含该Arraylist中所有元素的数组。

  • toArray(T [] elements)方法用于返回运行时类型为给定数组T []的数组,当此Arraylist适合给定数组时,将返回同一数组,否则分配新数组给定数组的类型。

  • toArray()方法在返回数组时不会引发异常。

  • toArray(T [] elements)方法在返回数组时可能会引发异常。

    • ArrayStoreException:如果给定数组T []的动态类型不是此Arraylist中元素的动态类型的父类型,则可能引发此异常。

    • NullPointerException:当给定数组为null时,可能引发此异常。

  • 这些是非静态方法,可通过类对象访问,如果尝试使用类名称访问这些方法,则会收到错误消息。

参数:

  • 在第一种情况下,toArray():它不接受任何参数。

  • 在第二种情况下,toArray(T [] elements)
    T [] elements –表示要存储元素的数组,当它能够存储其他元素时,它将根据相同动态类型的大小创建一个新数组。

返回值:

在第一种情况下,方法的返回类型为Object(),它返回一个Object类型的数组,其中包含此Arraylist中的所有元素。

在第二种情况下,该方法的返回类型为T [],它将返回一个包含该数组所有元素的数组。

示例

//Java程序演示示例 
//toArray()ArrayList的void方法的说明

import java.util.*;

public class ToArrayOfArrayList {
    public static void main(String args[]) {
        //创建一个具有初始容量的ArrayList-
        //存储元素
        ArrayList < String > arr_l = new ArrayList < String > (10);
        String str_l[] = new String[4];

        //通过使用add()方法是添加元素
        //在ArrayList-
        arr_l.add("C");
        arr_l.add("C++");
        arr_l.add("Java");
        arr_l.add("DotNet");

        //显示ArrayList- 
        System.out.println("ArrayList Elements :" + arr_l);

        System.out.println();

        //显示字符串数组
        for (String s: str_l)
            System.out.println("str_l :" + s);

        //通过使用toArray()方法是将
        //集合到数组
        Object[] o = arr_l.toArray();

        System.out.println();

        //显示ArrayList-
        for (Object val: arr_l)
            System.out.println("arr_l.toArray() : " + val);

        //通过使用toArray(T [])方法可简化
        //给定数组的集合
        str_l = arr_l.toArray(str_l);

        System.out.println();

        //显示str_l-
        for (String val1: str_l)
            System.out.println("arr_l.toArray(str_l) : " + val1);
    }
}

输出结果

ArrayList Elements :[C, C++, Java, DotNet]

str_l :null
str_l :null
str_l :null
str_l :null

arr_l.toArray() : C
arr_l.toArray() : C++
arr_l.toArray() : Java
arr_l.toArray() : DotNet

arr_l.toArray(str_l) : C
arr_l.toArray(str_l) : C++
arr_l.toArray(str_l) : Java
arr_l.toArray(str_l) : DotNet