# 如何使用 Java 中的`toArray()`将`LinkedList`转换为数组

> 原文： [https://beginnersbook.com/2014/07/how-to-convert-linkedlist-to-array-using-toarray-in-java/](https://beginnersbook.com/2014/07/how-to-convert-linkedlist-to-array-using-toarray-in-java/)

将[`LinkedList`](https://beginnersbook.com/2013/12/linkedlist-in-java-with-example/)转换为数组非常简单。您可以将任何类型的`LinkedList`（例如`double`，`String`，`int`等）转换为相同类型的数组。在本教程中，我们将看到此类转换的示例。

#### 示例

这里我们将`LinkedList`的字符串转换为`String`数组（`LinkedList`到`String[]`）。在程序结束时，我们已经提到了如何将任何其他类型的列表（如`double`，`int`等）转换为相应的数组类型。

```java
import java.util.LinkedList;

public class ConvertExample {
 public static void main(String[] args) {

    //Creating and populating LinkedList
    LinkedList<String> linkedlist = new LinkedList<String>();
    linkedlist.add("Harry");
    linkedlist.add("Maddy");
    linkedlist.add("Chetan");
    linkedlist.add("Chauhan");
    linkedlist.add("Singh");

    //Converting LinkedList to Array
    String[] array = linkedlist.toArray(new String[linkedlist.size()]);

    //Displaying Array content
    System.out.println("Array Elements:");
    for (int i = 0; i < array.length; i++)
    {
       System.out.println(array[i]);
    }
 }
}
```

**输出：**

```java
Array Elements:
Harry
Maddy
Chetan
Chauhan
Singh
```

正如您所看到的，我们在`LinkedList`中拥有与数组中相同的元素。

**注意：**

在上面的例子中，我们采用了`String`的`LinkedList`，但是如果你有一个不同类型的`LinkedList`，那么你可以像这样改变转换逻辑。

对于`LinkedList`转换逻辑将是：
`Double[] array = linkedlist.toArray(new Double[linkedlist.size()]);`

类似地，`LinkedList`转换逻辑将是：
`Integer[] array = linkedlist.toArray(new Integer[linkedlist.size()]);`

更多关于 Javadoc 的 [`toArray()`方法](https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#toArray(T[]))：

`public T[] toArray(T[] a)`：它以适当的顺序返回一个包含该列表中所有元素的数组（从第一个元素到最后一个元素）;返回数组的运行时类型是指定数组的运行时类型。如果列表适合指定的数组，则返回其中。否则，将使用指定数组的运行时类型和此列表的大小分配新数组。

如果列表适合指定的数组，并且有空余空间（即，数组的元素多于列表），则紧跟在列表末尾之后的数组中的元素将设置为`null`。 （仅当调用者知道列表不包含任何`null`元素时，这在确定列表长度时很有用。）