将 ArrayList 转换为 LinkedList

JavaBeginner
立即练习

介绍

在本实验中,我们将学习如何在 Java 中将 ArrayList 转换为 LinkedList。两者都是用于实现列表的类,但 ArrayList 以类似数组的列表形式存储数据,而 LinkedList 使用链表数据结构。我们将介绍几种将 ArrayList 转换为 LinkedList 的方法。

创建一个 ArrayList

我们将从创建一个包含字符串元素的 ArrayList 开始。

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("Mango");
        arrayList.add("Apple");
        arrayList.add("Orange");
        System.out.println(arrayList);
    }
}

要运行代码,请打开终端并导航到包含 Java 文件的目录。然后,使用以下命令编译并运行代码:

javac Main.java && java Main

你应该会看到输出:

[Mango, Apple, Orange]

使用构造函数将 ArrayList 转换为 LinkedList

ArrayList 转换为 LinkedList 的最简单方法是使用构造函数。我们可以将 ArrayList 作为参数传递给 LinkedList 的构造函数。

import java.util.ArrayList;
import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("Mango");
        arrayList.add("Apple");
        arrayList.add("Orange");
        System.out.println("ArrayList: ");
        System.out.println(arrayList);

        // ArrayList to LinkedList
        System.out.println("LinkedList: ");
        LinkedList<String> linkedList = new LinkedList<>(arrayList);
        System.out.println(linkedList);
    }
}

要运行代码,请打开终端并导航到包含 Java 文件的目录。然后,使用以下命令编译并运行代码:

javac Main.java && java Main

你应该会看到输出:

ArrayList:
[Mango, Apple, Orange]
LinkedList:
[Mango, Apple, Orange]

使用 add() 方法将 ArrayList 转换为 LinkedList

我们也可以使用 add() 方法将 ArrayList 中的元素逐个添加到 LinkedList 中。

import java.util.ArrayList;
import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("Mango");
        arrayList.add("Apple");
        arrayList.add("Orange");
        System.out.println("ArrayList: ");
        System.out.println(arrayList);

        // ArrayList to LinkedList
        System.out.println("LinkedList: ");
        LinkedList<String> linkedList = new LinkedList<>();
        for (String str : arrayList) {
            linkedList.add(str);
        }
        System.out.println(linkedList);
    }
}

要运行代码,请打开终端并导航到包含 Java 文件的目录。然后,使用以下命令编译并运行代码:

javac Main.java && java Main

你应该会看到输出:

ArrayList:
[Mango, Apple, Orange]
LinkedList:
[Mango, Apple, Orange]

使用 Stream API 将 ArrayList 转换为 LinkedList

如果你使用的是 Java 8 或更高版本,我们可以使用 Java Stream APIArrayList 转换为 LinkedList。我们可以使用 stream() 方法从 ArrayList 中获取元素流,并使用 collect() 方法将元素收集到 LinkedList 中。

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("Mango");
        arrayList.add("Apple");
        arrayList.add("Orange");
        System.out.println("ArrayList: ");
        System.out.println(arrayList);

        // ArrayList to LinkedList using Java Stream API
        System.out.println("LinkedList: ");
        LinkedList<String> linkedList = arrayList.stream()
                .collect(Collectors.toCollection(LinkedList::new));
        System.out.println(linkedList);
    }
}

要运行代码,请打开终端并导航到包含 Java 文件的目录。然后,使用以下命令编译并运行代码:

javac Main.java && java Main

你应该会看到输出:

ArrayList:
[Mango, Apple, Orange]
LinkedList:
[Mango, Apple, Orange]

总结

在本实验中,我们学习了在 Java 中将 ArrayList 转换为 LinkedList 的不同方法,例如使用构造函数、逐个添加元素或使用 Java Stream API。你可以根据项目需求选择使用这些方法。