将 ArrayList 转换为 LinkedList

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/DataStructuresGroup(["`Data Structures`"]) java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/FileandIOManagementGroup(["`File and I/O Management`"]) java/BasicSyntaxGroup -.-> java/output("`Output`") java/DataStructuresGroup -.-> java/collections_methods("`Collections Methods`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/constructors("`Constructors`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("`ArrayList`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/linkedlist("`LinkedList`") java/FileandIOManagementGroup -.-> java/stream("`Stream`") subgraph Lab Skills java/output -.-> lab-117417{{"`将 ArrayList 转换为 LinkedList`"}} java/collections_methods -.-> lab-117417{{"`将 ArrayList 转换为 LinkedList`"}} java/constructors -.-> lab-117417{{"`将 ArrayList 转换为 LinkedList`"}} java/arraylist -.-> lab-117417{{"`将 ArrayList 转换为 LinkedList`"}} java/linkedlist -.-> lab-117417{{"`将 ArrayList 转换为 LinkedList`"}} java/stream -.-> lab-117417{{"`将 ArrayList 转换为 LinkedList`"}} end

创建 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。你可以根据项目需求选择使用这些方法。

您可能感兴趣的其他 Java 教程