Converting ArrayList to LinkedList

JavaJavaBeginner
Practice Now

Introduction

In this lab, we will learn how to convert an ArrayList to a LinkedList in Java. Both are classes used to implement a list, but ArrayList stores data in an array-like list while LinkedList uses a linked list data structure. We will go through several methods to convert an ArrayList to LinkedList.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/ProgrammingTechniquesGroup(["`Programming Techniques`"]) java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/FileandIOManagementGroup(["`File and I/O Management`"]) java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/DataStructuresGroup(["`Data Structures`"]) java(("`Java`")) -.-> java/StringManipulationGroup(["`String Manipulation`"]) java(("`Java`")) -.-> java/SystemandDataProcessingGroup(["`System and Data Processing`"]) java/ProgrammingTechniquesGroup -.-> java/scope("`Scope`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/generics("`Generics`") java/FileandIOManagementGroup -.-> java/stream("`Stream`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/arraylist("`ArrayList`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("`Classes/Objects`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("`Class Methods`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/linkedlist("`LinkedList`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/modifiers("`Modifiers`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("`OOP`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("`Packages / API`") java/BasicSyntaxGroup -.-> java/identifier("`Identifier`") java/DataStructuresGroup -.-> java/arrays("`Arrays`") java/BasicSyntaxGroup -.-> java/comments("`Comments`") java/BasicSyntaxGroup -.-> java/data_types("`Data Types`") java/BasicSyntaxGroup -.-> java/operators("`Operators`") java/BasicSyntaxGroup -.-> java/output("`Output`") java/StringManipulationGroup -.-> java/strings("`Strings`") java/SystemandDataProcessingGroup -.-> java/system_methods("`System Methods`") subgraph Lab Skills java/scope -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/generics -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/stream -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/arraylist -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/classes_objects -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/class_methods -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/linkedlist -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/modifiers -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/oop -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/packages_api -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/identifier -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/arrays -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/comments -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/data_types -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/operators -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/output -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/strings -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} java/system_methods -.-> lab-117417{{"`Converting ArrayList to LinkedList`"}} end

Create an ArrayList

We will start by creating an ArrayList containing string elements.

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);
    }
}

To run the code, open your terminal and navigate to the directory containing your java file. Then, compile and run the code using the following command:

javac Main.java && java Main

You should see the output:

[Mango, Apple, Orange]

Use a constructor to convert ArrayList to LinkedList

The easiest way to convert an ArrayList to a LinkedList is to use a constructor. We can pass the ArrayList as an argument to the LinkedList constructor.

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);
    }
}

To run the code, open your terminal and navigate to the directory containing your java file. Then, compile and run the code using the following command:

javac Main.java && java Main

You should see the output:

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

Use add() method to convert ArrayList to LinkedList

We can also add elements from the ArrayList to the LinkedList one by one using the add() method.

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);
    }
}

To run the code, open your terminal and navigate to the directory containing your java file. Then, compile and run the code using the following command:

javac Main.java && java Main

You should see the output:

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

Use stream API to convert ArrayList to LinkedList

If you are using Java 8 or higher version, we can use Java Stream API to convert ArrayList to LinkedList. We can use the stream() method to get a stream of elements from the ArrayList and collect() method to collect the elements into a 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);
    }
}

To run the code, open your terminal and navigate to the directory containing your java file. Then, compile and run the code using the following command:

javac Main.java && java Main

You should see the output:

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

Summary

In this lab, we learned different ways to convert an ArrayList to a LinkedList in Java, such as using a constructor, adding elements one by one, or using Java Stream API. You can use these methods based on your requirements in your project.

Other Java Tutorials you may like