您的位置:

Java集合转数组操作详解

一、集合转数组概述

Java集合框架提供了将集合转换成数组的方法。这种转换允许在需要数组的任何地方使用集合。通过将元素集合存储在数组中,可以利用数组的特定属性(例如,可使用数组的length属性快速访问集合中的元素数量)。

Collection接口提供了两种方法来将集合转换为数组:

Object[] toArray() // 将集合转换成对象数组
<T> T[] toArray(T[] a)// 将集合转换成指定类型的数组

其中第一个方法返回一个Object类型的数组,该数组包含所有元素的集合。第二个方法返回一个指定类型的数组,该数组包含所有元素的集合。

二、toArrray()方法转换为Object类型数组

如果我们调用toArrray()方法并将其结果分配给一个数组类型,那么该数组将包含由Object类表示的所有元素。下面是一个列表示例:

import java.util.*;

public class ArrayListToArray {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("JavaFX");
        list.add("Hbase");
        list.add("WebGL");
        list.add("OpenCV");
        list.add("Java");
        list.add("NodeJS");

        Object[] object = list.toArray();

        System.out.println("Printing Object Array:");

        for(Object obj : object){
            System.out.println(obj);
        }
    }
}

输出结果如下所示:

Printing Object Array:
JavaFX
Hbase
WebGL
OpenCV
Java
NodeJS

三、toArray(T[] a)方法转换为指定类型数组

通常使用带有泛型对象的toArray(T[] a)方法将元素列表转换为指定类型的数组。下面看一下如何使用这个方法:

import java.util.*;

public class ArrayListToArray {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("JavaFX");
        list.add("Hbase");
        list.add("WebGL");
        list.add("OpenCV");
        list.add("Java");
        list.add("NodeJS");

        String[] stringArr = new String[list.size()];
        list.toArray(stringArr);

        System.out.println("Printing String Array:");

        for(String str : stringArr){
            System.out.println(str);
        }
    }
}

输出结果如下所示:

Printing String Array:
JavaFX
Hbase
WebGL
OpenCV
Java
NodeJS

如以上代码所示,我们通过创建一个数组对象来使用toArray(T[] a)方法将元素列表转换为指定类型的数组,然后再将这个数组对象传递给 toArray() 方法。结果就是一个包含所有元素的具有给定类型的数组。

四、总结

通过使用Java集合框架提供的toArray()方法,我们可以将一个集合转换成数组。这使得在需要使用数组的任何地方使用集合变得更加容易。我们学习了两种方法:toArray() 和 toArray(T[] a),它们可以将元素列表转换为Object类型或指定类型的数组。

下面是完整代码:

import java.util.*;

public class ArrayListToArray {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("JavaFX");
        list.add("Hbase");
        list.add("WebGL");
        list.add("OpenCV");
        list.add("Java");
        list.add("NodeJS");

        // toArray() method converts list to an object array
        Object[] object = list.toArray();

        System.out.println("Printing Object Array:");

        for(Object obj : object){
            System.out.println(obj);
        }

        // toArray(T[] a) method converts list to a specified type of array
        String[] stringArr = new String[list.size()];
        list.toArray(stringArr);

        System.out.println("Printing String Array:");

        for(String str : stringArr){
            System.out.println(str);
        }
    }
}