Java之List转Array的方法

一、List转Array介绍

在JAVA编程中,List和Array都是很常见的数据类型。它们都可以储存多个相同类型的元素,由于使用场景不同,某些情况下需要将List转换成Array。List转换成Array主要有两种方式:

1. 利用List的toArray()方法;

2. 利用Collection的toArray()方法。

二、List的toArray()方法

List的toArray()方法可以将List类型的集合转换为数组类型,其实现方式如下: 

 List list = new ArrayList<>();
        list.add("Java");
        list.add("Python");
        list.add("JavaScript");
        //String[] strings = new String[list.size()];
        //list.toArray(strings);
        String[] strings = list.toArray(new String[list.size()]);
        System.out.println(Arrays.toString(strings));
        //[Java, Python, JavaScript]

上述代码中,通过list.toArray(array)将List类型的集合转换成String类型的数组。

需要注意的是,在List类型转换成数组时,需要预先声明数组类型及其大小。

三、Collection的toArray()方法

public Object[] toArray();

public  T[] toArray(T[] a);

Collection的toArray()方法可以将Collection类型的集合转换为数组类型,使用方式如下:

 Collection collection = new ArrayList<>();
        collection.add("Java");
        collection.add("Python");
        collection.add("JavaScript");
        Object[] objects = collection.toArray();
        String[] strings = Arrays.copyOf(objects, objects.length, String[].class);
        System.out.println(Arrays.toString(strings));
        //[Java, Python, JavaScript]

public T[] toArray(T[] a)的使用

        在toArray参数中直接确定使用什么数据类型来接受,T代表数据类型,[]代表的是数组,即在toArray()方法中传入一个具体数据类型的数组即可。直接返回的就是具体数据类型的数组对象。

长度定义方式一:直接给0即new String[0],如果长度不够,系统会自动加长度,这样就消耗了系统的资源。

长度定义方式二:长度给的过长,但是这些多余的长度还在系统中存在,就形成了一个内存的浪费。

长度定义方式三:就是在定义String[]数组的时候,使用集合的长度来定义数组的长度,因为集合的长度已经定了,其元素的个数也已经定了。

上述代码实现了Collection类型转换成String类型数组的功能。

需要注意的是,Collection的toArray()方法在执行时,需要传入指定类型的类型参数,否则会抛出ClassCastException类型的异常。