您的位置:

Java ArrayList转数组

引言

Java中的ArrayList是一个动态数组,可以根据需要自动扩展和缩小,非常方便。但是有时候我们需要将ArrayList转换为数组,比如算法的一些需要或者与其他系统交互时需要这种转换。那么在本文中,我们将讲解Java中ArrayList如何转换为数组。

详细讲解

方法一:toArray()方法

Java中的ArrayList类提供了一个名为toArray()的方法,可以将ArrayList转换为数组。该方法的语法如下: ``` public Object[] toArray() ``` 该方法返回一个存储元素的数组,其中数组元素类型为Object。如果原来的ArrayList中存储的是基本数据类型,可以使用自动装箱的方式将它们转换为对象。下面是一个例子: ``` import java.util.ArrayList; import java.util.Arrays; public class ArrayListToArrayExample { public static void main(String[] args) { ArrayList arrayList = new ArrayList<>(); arrayList.add(1); arrayList.add(2); arrayList.add(3); Object[] objectArray = arrayList.toArray(); Integer[] integerArray = Arrays.copyOf(objectArray, objectArray.length, Integer[].class); System.out.println("Original ArrayList: " + arrayList); System.out.println("Object array: " + Arrays.toString(objectArray)); System.out.println("Integer array: " + Arrays.toString(integerArray)); } } ``` 输出结果如下: ``` Original ArrayList: [1, 2, 3] Object array: [Ljava.lang.Object;@1e643faf Integer array: [1, 2, 3] ```

方法二:使用toArray(T[] a)方法

ArrayList类还提供了一个另外一个toArray()方法,该方法可以将ArrayList中的元素复制到指定类型的数组中。该方法的语法如下: ``` public T[] toArray(T[] a) ``` 该方法接受一个指定类型的数组对象作为参数,如果该数组的大小小于ArrayList中元素的个数,那么该方法内部会创建一个新的数组。如果指定数组的大小大于或等于ArrayList中元素的个数,那么该方法将把元素复制到指定的数组中。下面是一个例子: ``` import java.util.ArrayList; import java.util.Arrays; public class ArrayListToArrayExample2 { public static void main(String[] args) { ArrayList arrayList = new ArrayList<>(); arrayList.add(1); arrayList.add(2); arrayList.add(3); Integer[] integerArray = new Integer[arrayList.size()]; integerArray = arrayList.toArray(integerArray); System.out.println("Original ArrayList: " + arrayList); System.out.println("Integer array: " + Arrays.toString(integerArray)); } } ``` 输出结果如下: ``` Original ArrayList: [1, 2, 3] Integer array: [1, 2, 3] ```

小结

本文详细介绍了Java中ArrayList转换为数组的两种方法。第一种方法是使用toArray()方法,该方法会返回一个元素类型为Object的数组,需要使用类型转换将其转换为目标类型的数组。第二种方法是使用toArray(T[] a)方法,该方法接受一个指定类型的数组对象作为参数,并将ArrayList中的元素复制到该数组中。我们可以根据具体的需求选择不同的方法进行转换。