Como trabalhar com listas (ArrayList, LinkedList) em Java?

ArrayList e LinkedList são implementações da interface List em Java, utilizadas para armazenar e manipular coleções dinâmicas de elementos.

Como trabalhar com listas (ArrayList, LinkedList) em Java?

Em Java, a interface List define uma estrutura de dados dinâmica que permite armazenar elementos ordenados. As duas principais implementações de List são ArrayList e LinkedList, cada uma com características específicas.

1. Criando uma Lista com ArrayList

O ArrayList é baseado em arrays dinâmicos, permitindo redimensionamento automático.

import java.util.ArrayList;

public class TesteArrayList {
    public static void main(String[] args) {
        ArrayList<String> lista = new ArrayList<>();

        lista.add("Java");
        lista.add("Python");
        lista.add("JavaScript");

        System.out.println("Lista: " + lista);
    }
}

Saída esperada:

Lista: [Java, Python, JavaScript]

2. Criando uma Lista com LinkedList

O LinkedList usa uma lista duplamente encadeada, onde cada elemento aponta para o próximo e o anterior.

import java.util.LinkedList;

public class TesteLinkedList {
    public static void main(String[] args) {
        LinkedList<String> lista = new LinkedList<>();

        lista.add("Java");
        lista.add("Python");
        lista.add("JavaScript");

        System.out.println("Lista: " + lista);
    }
}

3. Diferenças entre ArrayList e LinkedList

Característica ArrayList LinkedList
Estrutura Array dinâmico Lista encadeada
Acesso a elementos Rápido (O(1)) Lento (O(n))
Inserção e remoção Lento (O(n)) Rápido (O(1))
Uso de memória Menor Maior (ponteiros adicionais)

4. Iterando sobre uma Lista

Usando for-each

for (String linguagem : lista) {
    System.out.println(linguagem);
}

Usando for com índice

for (int i = 0; i < lista.size(); i++) {
    System.out.println(lista.get(i));
}

Usando Iterator

import java.util.Iterator;
Iterator<String> iterator = lista.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

5. Quando Usar ArrayList ou LinkedList?

  • Use ArrayList para acesso rápido aos elementos.
  • Use LinkedList quando precisar adicionar ou remover elementos frequentemente no início ou meio da lista.

Conclusão

ArrayList e LinkedList são estruturas essenciais para armazenar coleções dinâmicas em Java. A escolha entre elas depende da necessidade do programa, considerando desempenho e consumo de memória.

As listas em Java são amplamente utilizadas em sistemas que necessitam armazenar coleções dinâmicas de dados. Por exemplo, em aplicações web, ArrayList é comumente usado para armazenar dados temporários de usuários, enquanto LinkedList pode ser útil para gerenciar filas de processamento em servidores. Além disso, frameworks como Hibernate e Spring utilizam listas internamente para manipular dados em bancos de dados.

Algumas aplicações:

  • Armazenamento dinâmico de dados
  • Filas de processamento em servidores
  • Manipulação de coleções de objetos
  • Ordenação e filtragem de elementos

Dicas para quem está começando

  • Use ArrayList quando precisar acessar elementos rapidamente
  • Prefira LinkedList para inserir ou remover elementos com frequência
  • Utilize Iterator para percorrer listas grandes de forma eficiente
  • Evite LinkedList se precisar acessar elementos aleatoriamente
  • Teste a performance de cada lista conforme a necessidade do seu projeto

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como trabalhar com listas ArrayList LinkedList em Java

Compartilhe este tutorial

Continue aprendendo:

Como validar um e-mail usando expressões regulares em Java

A validação de e-mail em Java pode ser feita utilizando expressões regulares para garantir que o formato do endereço esteja correto.

Tutorial anterior

Qual a diferença entre ArrayList e LinkedList

ArrayList e LinkedList são classes da interface List em Java, sendo utilizadas para armazenar coleções de dados de maneira dinâmica.

Próximo tutorial