📅  最后修改于: 2023-12-03 15:31:49.695000             🧑  作者: Mango
AbstractSequentialList
是 Java
编程语言中的抽象类,它实现了 List
接口,但未提供对随机访问的支持。
AbstractSequentialList
中的 toArray(T[])
方法可以将列表中的元素转换为数组,并将其存储在给定的数组中。该方法返回的是数组的引用。
/**
* 返回一个包含此列表中所有元素的数组。
*
* 如果指定的数组足够大来容纳列表,则将元素复制到指定的数组中,否则为此分配一个新的数组。
* 如果指定的数组大于此列表,则紧跟列表结束后的数组索引将设置为 null。
*
* 此方法充当基于数组的 API 和基于集合的 API 之间的桥梁。
*
* @param a 要存储列表元素的数组(如果它足够大);否则,为此分配一个具有相同运行时类型的新数组。
* @return 包含列表中所有元素的数组。
* @throws ArrayStoreException 如果指定数组的运行时类型不是此列表中每个元素的运行时类型的超类型
* @throws NullPointerException 如果指定的数组为空
*/
public <T> T[] toArray(T[] a);
特别说明:方法中的
T
表示类型参数。
我们需要注意一下 toArray(T[])
方法的一些重要点:
null
;ArrayStoreException
异常;下面是一个使用 AbstractSequentialList toArray(T[])
方法的示例:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<>();
arrayList.add("Alice");
arrayList.add("Bob");
arrayList.add("Charlie");
// 将 ArrayList 转换为 String 数组
String[] array = new String[arrayList.size()];
array = arrayList.toArray(array);
for (String str : array) {
System.out.println(str);
}
List<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
// 将 LinkedList 转换为 Integer 数组
Integer[] array2 = new Integer[linkedList.size()];
array2 = linkedList.toArray(array2);
for (int num : array2) {
System.out.println(num);
}
}
}
输出结果:
Alice
Bob
Charlie
1
2
3
在上述示例中,我们首先声明了两个列表 arrayList
和 linkedList
,它们的类型分别为 ArrayList
和 LinkedList
。
我们通过 add()
方法为它们添加元素。
然后,我们分别使用 toArray(T[])
方法将这两个列表转换为数组。在转换的过程中,我们使用的都是同一类型的数组,分别为 String[]
和 Integer[]
。
最后,我们打印出了这两个数组中的所有元素。你会发现,输出结果是与列表中元素的顺序一致的,这正是我们前面提到过的。