📜  Java中的 LinkedList toArray() 方法与示例(1)

📅  最后修改于: 2023-12-03 15:31:53.290000             🧑  作者: Mango

Java中的 LinkedList toArray() 方法与示例

LinkedList是Java集合框架中一个非常常见的类,它是一个双向链表的实现。LinkedList中提供了toArray()方法,可以将LinkedList转换成一个数组。这篇文章将介绍该方法以及实际使用情境和代码示例。

toArray()方法的定义

先来看一下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()方法的使用示例

下面是一个使用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()方法时不初始化返回的数组,可能会导致运行时错误。此外,需要对返回的数组进行类型转换才能使用。