📅  最后修改于: 2023-12-03 15:31:53.290000             🧑  作者: Mango
LinkedList是Java集合框架中一个非常常见的类,它是一个双向链表的实现。LinkedList中提供了toArray()方法,可以将LinkedList转换成一个数组。这篇文章将介绍该方法以及实际使用情境和代码示例。
先来看一下toArray()方法的定义:
Object[] toArray()
该方法会返回一个Object类型的数组,其中包含了LinkedList中保存的元素。需要注意的是,toArray()方法返回的数组类型是Object类型,需要进行强制类型转换才能转换成正确的类型。
也可以使用toArray(T[] a)方法来指定返回的数组类型:
<T> T[] toArray(T[] a)
这个方法会返回一个指定类型的数组,其中包含了LinkedList中的元素。需要注意的是,如果指定的数组大小比LinkedList中的元素个数小,该方法会创建一个新的数组,大小为LinkedList的元素个数。如果指定的数组大小比LinkedList中的元素个数大,那么toArray()方法将返回指定的数组,其中多余的位置填充了null。如果指定的数组大小刚好等于LinkedList中的元素个数,那么toArray()方法将原始LinkedList中的元素复制到该数组中。
下面是一个使用toArray()方法的示例,假设我们有一个LinkedList对象,其中存储了一些字符串:
LinkedList<String> list = new LinkedList<>();
list.add("java");
list.add("c++");
list.add("Python");
我们可以使用toArray()方法将LinkedList转换成一个Object类型的数组:
Object[] objArray = list.toArray();
也可以指定返回的数组类型:
String[] strArray = list.toArray(new String[0]);
需要注意的是,如果不事先创建一个长度为0的数组作为toArray()方法的参数,则会在运行时创建一个具有相同类型和大小的数组。
源代码示例:
import java.util.LinkedList;
public class LinkedListToArrayExample {
public static void main(String[] args) {
// 创建LinkedList对象
LinkedList<String> list = new LinkedList<>();
// 向LinkedList中添加元素
list.add("java");
list.add("c++");
list.add("Python");
// 将LinkedList转换成Object数组
Object[] objArray = list.toArray();
// 输出Object数组中的元素
for (Object obj : objArray) {
System.out.println(obj);
}
// 创建指定类型的数组
String[] strArray = new String[3];
// 将LinkedList转换成指定类型的数组
strArray = list.toArray(strArray);
// 输出指定类型数组中的元素
for (String str : strArray) {
System.out.println(str);
}
}
}
输出结果:
java
c++
Python
java
c++
Python
LinkedList.toArray()方法简单易用,可以很方便地将LinkedList转换成数组。需要注意的是,如果调用toArray()方法时不初始化返回的数组,可能会导致运行时错误。此外,需要对返回的数组进行类型转换才能使用。