Tanto ArrayList quanto LinkedList são implementações da interface List, porém cada uma delas utiliza uma estratégia interna diferente para armazenar e gerenciar elementos — como dois estilos de combate distintos, cada um com sua especialidade.
Uma estrutura baseada em array redimensionável.
Os elementos ocupam posições contínuas na memória, permitindo acesso direto e rápido.
🐢 Inserções/remoções no meio são lentas (O(n))
→ exige deslocar outros elementos
🔄 Redimensionamento custoso
→ quando atinge a capacidade, cria um novo array interno
Pense em um estoque organizado de equipamentos, onde tudo está em ordem e pode ser encontrado rapidamente — porém reorganizar no meio dá trabalho.
Uma estrutura baseada em nós encadeados.
Cada elemento armazena referências para o próximo (e anterior, no caso da lista duplamente ligada).