Convertendo ArrayList para LinkedList

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como converter um ArrayList para um LinkedList em Java. Ambos são classes usadas para implementar uma lista, mas o ArrayList armazena dados em uma lista semelhante a um array, enquanto o LinkedList usa uma estrutura de dados de lista ligada (linked list). Percorreremos vários métodos para converter um ArrayList para um LinkedList.

Criar um ArrayList

Começaremos criando um ArrayList contendo elementos string.

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

Para executar o código, abra seu terminal e navegue até o diretório que contém seu arquivo java. Em seguida, compile e execute o código usando o seguinte comando:

javac Main.java && java Main

Você deverá ver a saída:

[Mango, Apple, Orange]

Usar um construtor para converter ArrayList para LinkedList

A maneira mais fácil de converter um ArrayList para um LinkedList é usar um construtor. Podemos passar o ArrayList como um argumento para o construtor 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);
    }
}

Para executar o código, abra seu terminal e navegue até o diretório que contém seu arquivo java. Em seguida, compile e execute o código usando o seguinte comando:

javac Main.java && java Main

Você deverá ver a saída:

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

Usar o método add() para converter ArrayList para LinkedList

Também podemos adicionar elementos do ArrayList para o LinkedList um por um usando o método add().

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

Para executar o código, abra seu terminal e navegue até o diretório que contém seu arquivo java. Em seguida, compile e execute o código usando o seguinte comando:

javac Main.java && java Main

Você deverá ver a saída:

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

Usar a API Stream para converter ArrayList para LinkedList

Se você estiver usando Java 8 ou versão superior, podemos usar a Java Stream API para converter ArrayList para LinkedList. Podemos usar o método stream() para obter um fluxo de elementos do ArrayList e o método collect() para coletar os elementos em um 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);
    }
}

Para executar o código, abra seu terminal e navegue até o diretório que contém seu arquivo java. Em seguida, compile e execute o código usando o seguinte comando:

javac Main.java && java Main

Você deverá ver a saída:

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

Resumo

Neste laboratório, aprendemos diferentes maneiras de converter um ArrayList para um LinkedList em Java, como usar um construtor, adicionar elementos um por um ou usar a Java Stream API. Você pode usar esses métodos com base em seus requisitos em seu projeto.