📅  最后修改于: 2023-12-03 15:36:15.545000             🧑  作者: Mango
在Java编程中,ArrayList作为一种常见数据类型,经常用来存储一组数据。但是,在某些情况下,我们需要将ArrayList转换为Java的Array数组。这时,就可以使用toArray()方法。
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("orange");
String[] array = arrayList.toArray(new String[0]);
以上代码演示了如何将一个字符串类型的ArrayList转换为一个字符串类型的Array数组。
接下来,我们来详细解释一下toArray()方法的使用方式。
toArray()方法的定义如下:
public Object[] toArray()
该方法返回一个包含此列表中所有元素的数组。返回数组将是对象数组(Object[])。
我们也可以使用重载的toArray()方法来指定目标类型。
public <T> T[] toArray(T[] a)
当我们传入的数组a的长度>=此列表中的元素数量时,toArray()方法将把列表中的元素存储在此数组中。否则,toArray()方法将创建一个新的数组并将列表中的元素存储在其中。
我们还需要注意的是,要将ArrayList转换为基本类型的数组,例如int[],我们需要使用Java的自动装箱和拆箱机制。
下面,我们来演示一些例子。
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
Integer[] array = arrayList.toArray(new Integer[0]);
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
int[] array = arrayList.stream().mapToInt(i -> i).toArray();
在这个例子中,我们使用了Java 8的方法引用(method reference)来将Integer类型的元素映射到int类型的元素中。最后,我们使用流(stream)操作将转换后的元素存储在int[]数组中。
toArray()方法可以将ArrayList转换为Java的Array数组。我们可以使用toArray()方法的不同重载版本,根据具体的需求来指定目标类型和数组长度。同时,我们需要注意基本数据类型的自动装箱和拆箱机制。