Diferença entre ArrayList e LinkedList

Índice:

Diferença entre ArrayList e LinkedList
Diferença entre ArrayList e LinkedList

Vídeo: Diferença entre ArrayList e LinkedList

Vídeo: Diferença entre ArrayList e LinkedList
Vídeo: Diferença do ArrayList e LinkedList - Linguagem Java 2024, Novembro
Anonim

Key Difference – ArrayList vs LinkedList

Coleções são úteis para armazenar dados. Em uma matriz normal, o tamanho da matriz é fixo. Às vezes, é necessário criar matrizes que possam crescer conforme necessário. Linguagens de programação como Java tem coleções. É um framework com um conjunto de classes e interfaces. Ele serve como um recipiente para um grupo de elementos. As coleções permitem armazenar, atualizar, recuperar um conjunto de elementos. Ajuda a trabalhar com estruturas de dados como listas, conjuntos, árvores e mapas. A lista é uma interface do framework Collection. ArrayList e LinkedList são duas classes na estrutura de coleções. Eles implementam a interface de coleção e a interface de lista. Este artigo discute a diferença entre ArrayList e LinkedList. ArrayList é uma classe que estende a AbstractList e implementa a interface List, que usa internamente um array dinâmico para armazenar elementos de dados. LinkedList é uma classe que estende a AbstractSequentialList e implementa as interfaces List, Deque e Queue, que usam internamente uma lista duplamente vinculada para armazenar elementos de dados. Essa é a principal diferença entre ArrayList e LinkedList.

O que é ArrayList?

A classe ArrayList é usada para criar arrays dinâmicos. Ao contrário de um array normal, o tamanho de um array dinâmico não é fixo. Um objeto criado usando a classe ArrayList tem permissão para armazenar um conjunto de elementos na lista. A capacidade aumenta automaticamente, para que o programador possa adicionar elementos à lista. A classe ArrayList estende a classe AbstractList que implementa a interface List. Portanto, os métodos da interface List podem ser usados por ArrayList. Para acessar os elementos, o método get() é usado. O método add() pode ser usado para adicionar elementos à lista. O método remove() é usado para remover um elemento da lista. Consulte o programa abaixo.

Diferença entre ArrayList e LinkedList
Diferença entre ArrayList e LinkedList
Diferença entre ArrayList e LinkedList
Diferença entre ArrayList e LinkedList

Figura 01: Exemplo de ArrayList

De acordo com o programa acima, um objeto ArrayList é criado. Usando o método add, os elementos podem ser adicionados dinamicamente. Os elementos “A”,”B”,”C”,”D” e “E” são adicionados usando o método add. O método remove é usado para remover um elemento da lista. Ao passar 4 para o método remove, a letra no 4º índice que é “E” é removida da lista. Ao percorrer a lista usando o loop for, as letras A, B, C e D serão impressas.

O que é LinkedList?

Semelhante ao ArrayList, o LinkedList é usado para armazenar elementos de dados dinamicamente. Um objeto criado usando a classe LinkedList tem permissão para armazenar um conjunto de elementos na lista. A capacidade aumenta automaticamente, para que o programador possa adicionar elementos à lista. Ele usa internamente uma lista duplamente vinculada para armazenar dados. Em uma lista duplamente vinculada, os dados são armazenados como nós. Cada nó contém dois links. O primeiro link aponta para o nó anterior. O próximo link aponta para o próximo nó na sequência.

A classe LinkedList estende a classe AbstractSequentialList e implementa a interface List. Portanto, os métodos da interface List podem ser usados pela LinkedList. O método get() pode ser usado para acessar elementos da lista. O método add() pode ser usado para adicionar elementos à lista. O método remove() é usado para remover um elemento da lista. Consulte o programa abaixo.

Diferença chave entre ArrayList e LinkedList
Diferença chave entre ArrayList e LinkedList
Diferença chave entre ArrayList e LinkedList
Diferença chave entre ArrayList e LinkedList

Figura 02: Exemplo com LinkedList

De acordo com o programa acima, um objeto LinkedList é criado. Usando o método add, os elementos podem ser adicionados dinamicamente. Os elementos “A”,”B”,”C”,”D” e “E” são adicionados usando o método add. O método remove é usado para remover um elemento da lista. Ao passar 4 para o método remove, a letra no 4º índice que é “E” é removida da lista. Ao iterar usando o loop for, as letras A, B, C e D serão impressas.

Quais são as semelhanças entre ArrayList e LinkedList?

  • Ambos ArrayList e LinkedList implementam a interface List.
  • Tanto ArrayList quanto LinkedList podem conter elementos duplicados.
  • Ambos ArrayList e LinkedList mantêm a ordem de inserção.

Qual é a diferença entre ArrayList e LinkedList?

ArrayList vs LinkedList

ArrayList é uma classe que estende a AbstractList e implementa a interface List que usa internamente um array dinâmico para armazenar elementos de dados. LinkedList é uma classe que estende a AbstractSequentialList e implementa as interfaces List, Deque, Queue, que internamente usa uma lista duplamente vinculada para armazenar elementos de dados.
Acessando Elementos
Acessar elementos de ArrayList é mais rápido do que de LinkedList. Acessar elementos de LinkedList é mais lento do que de ArrayList.
Manipulação de Elementos
A manipulação de elementos de ArrayList é mais lenta do que de uma LinkedList. Manipulação de elementos de LinkedList é mais rápido do que de um ArrayList.
Comportamento
ArrayList funciona como uma lista. LinkedList funciona como uma lista e uma fila.

Resumo – ArrayList vs LinkedList

O framework de coleção permite trabalhar com estruturas de dados como listas, árvores, mapas e conjuntos. A lista é uma interface do framework de coleta. Este artigo discutiu a diferença entre ArrayList e LinkedList. ArrayList é uma classe que estende a AbstractList e implementa a interface List que usa internamente um array dinâmico para armazenar elementos de dados. LinkedList é uma classe que estende a AbstractSequentialList e implementa as interfaces List, Deque, Queue, que internamente usa uma lista duplamente vinculada para armazenar elementos de dados. Essa é a diferença entre ArrayList e LinkedList.

Recomendado: