Java ArrayList toArray()、toArray(T[] a)方法使用和注意事项

Java ArrayList中的toArray()方法返回一个包含列表中所有元素的数组。以下是toArray()方法的使用示例:

ArrayList<String> myArrayList = new ArrayList<>();
myArrayList.add("apple");
myArrayList.add("banana");
myArrayList.add("cherry");

Object[] myArray = myArrayList.toArray();
System.out.println(Arrays.toString(myArray));

在上面的示例中,我们创建了一个ArrayList对象,并使用add()方法向列表中添加了三个元素。然后,我们使用toArray()方法获取了一个包含列表中所有元素的Object类型数组,并将其存储在一个Object类型的变量中。最后,我们使用Arrays.toString()方法打印了这个数组。

需要注意的是,toArray()方法返回的是一个Object类型的数组,而不是一个泛型数组。如果要获取一个泛型数组,可以使用toArray(T[] a)方法。以下是toArray(T[] a)方法的使用示例:

ArrayList<String> myArrayList = new ArrayList<>();
myArrayList.add("apple");
myArrayList.add("banana");
myArrayList.add("cherry");

String[] myArray = new String[myArrayList.size()];
myArrayList.toArray(myArray);
System.out.println(Arrays.toString(myArray));

在上面的示例中,我们创建了一个ArrayList对象,并使用add()方法向列表中添加了三个元素。然后,我们创建了一个String类型的数组,并将其大小设置为列表的大小。接下来,我们使用toArray(T[] a)方法将列表中的元素复制到这个数组中,并将其存储在一个String类型的变量中。最后,我们使用Arrays.toString()方法打印了这个数组。

需要注意的是,如果传递给toArray(T[] a)方法的数组大小小于列表的大小,则会创建一个新的数组,并将列表中的元素复制到这个新数组中。如果传递给toArray(T[] a)方法的数组大小大于列表的大小,则会将列表中的元素复制到这个数组的前面,并将数组中剩余的元素设置为null。如果传递给toArray(T[] a)方法的数组大小等于列表的大小,则会将列表中的元素复制到这个数组中。