Você está na página 1de 2

LinkedList

Introdução:
Listas encadeadas, representadas pela classe LinkedList em Java, são estruturas de dados que
oferecem flexibilidade no armazenamento e manipulação de elementos. Ao contrário de
arrays, as linked lists podem ter tamanho dinâmico e permitem a inserção ou remoção
eficiente de elementos em qualquer posição.

LinkedList vs. ArrayList:


Enquanto o ArrayList utiliza um array dinâmico para armazenar elementos, a LinkedList é
composta por nós que contêm referências para o próximo e o anterior, formando uma cadeia.
Essa estrutura torna as operações de inserção e remoção mais eficientes em LinkedLists do que
em ArrayLists.

Declaração:
Para utilizar uma LinkedList em Java, importamos a biblioteca necessária e declaramos a lista.
No exemplo abaixo, criamos uma LinkedList chamada "nomes" para armazenar strings.

import java.util.LinkedList;
import java.util.List;

public class Main {


public static void main(String[] args) {
List<String> nomes = new LinkedList<>();
}
}

Adicionar Elemento:
A adição de elementos em uma LinkedList é realizada com o método "add". Abaixo,
adicionamos nomes à lista.
nomes.add("Alice");
nomes.add("Bob");
nomes.add("Charlie");

Acessar Elementos por Índice:


Ao contrário de ArrayList, a LinkedList não permite acesso direto por índice eficiente. Em vez
disso, percorremos os nós da lista.

for (String nome : nomes) {


System.out.print(nome + ", ");
}
Percorrer Elementos (Usando for-each):
Podemos percorrer os elementos de uma LinkedList usando um loop "for-each", como
mostrado no exemplo acima.

Remover Elemento:
A remoção de elementos em LinkedList é eficiente, especialmente quando comparada a
ArrayList. Abaixo, removemos o nome "Bob" da lista.
nomes.remove("Bob");

Adicionar Elementos com Construtores (OOP):


Assim como em ArrayList, podemos usar construtores para criar objetos complexos e adicioná-
los a uma LinkedList. O exemplo a seguir demonstra como criar e adicionar objetos Pessoa à
lista.

public class Pessoa {


private String nome;
private int idade;

public Pessoa(String nome, int idade){


this.nome = nome;
this.idade = idade;
}

// Getters e método toString() omitidos por brevidade


}

import java.util.LinkedList;
import java.util.Scanner;

public class Main {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
LinkedList<Pessoa> dados = new LinkedList<>();

for (int i = 0; i < 3; i++) {


System.out.println("Qual o seu Nome?");
String nome = scanner.next();

System.out.println("Qual a sua idade?");


int idade = scanner.nextInt();

Pessoa pessoa = new Pessoa(nome, idade);


dados.add(pessoa);
}

for (Pessoa pessoa : dados) {


System.out.println(pessoa);
}
}
}

Você também pode gostar