LinkedList vs ArrayList em Java: Conheça as principais diferenças



Este artigo LinkedList vs ArrayList fornecerá uma comparação adequada entre as listas que implementam a interface de lista

Lista em Java é uma subinterface do que oferece soluções ideais com conceitos como acesso posicional, iteração e assim por diante. Neste artigo, discutirei as principais diferenças entre a interface de lista LinkedList vs ArrayList em Java.

Abaixo estão os tópicos abordados neste artigo:





Vamos começar!

O que é LinkedList?

Depois de matrizes , a segunda estrutura de dados mais popular é definitivamente um . Uma lista ligada é uma estrutura de dados linear que é constituída por umcadeia de nós em que cada nó contém um valor e umponteiropara o próximo nó da cadeia.Além disso, tO último link em uma lista vinculada aponta para nulo, indicando o fim da cadeia.Um elemento em uma lista vinculada é chamado de .O primeiro nó da lista é chamado de cabeça .O último nó é chamado de rabo .



Deixe-me dar um exemplo simples disso: imagine uma cadeia de clipes de papel que estão ligados entre si. Você pode adicionar facilmente outro clipe de papel na parte superior ou inferior. Também é fácil inserir um no meio. Tudo o que você precisa fazer é quebrar a corrente no meio, adicionar um novo clipe de papel e reconectar a outra metade. Uma lista vinculada é semelhante a esta.

como converter um duplo em um int em java

Exemplo:

pacote MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) é usado para adicionar * os itens à lista vinculada * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Conteúdo da lista vinculada:' + l_list) / * Adicionar itens na posição especificada * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Conteúdo após a edição: '+ l_list) / * Adicionar primeiro e último item * / l_list.addFirst (' Primeiro curso ') l_list.addLast (' Último curso ') System.out.println (' l_list Conteúdo após adição: '+ l_list) / * Obter e definir itens na lista * / Object firstvar = l_list.get (0) System.out.println ('Primeiro item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content após atualizar o primeiro item: '+ l_list) / * Remover de uma posição * / l_list.remove (1) l_list.remove (2) System.out.println ('Lista vinculada após exclusão do item na 2ª e 3ª posição' + l_list) / * Remova o primeiro e o último item * / l_list.removeFirst () l_list.removeLast () System.out.println ('Conteúdo final após a remoção do primeiro e último item : '+ l_list) / * Iterando a lista vinculada * / ListIteratoritrator = l_list.listIterator () System.out.println (' Lista exibida usando iterador: ') while (itrator.hasNext ()) {System.out.println (itrator .Next()) } } }

Resultado:



Conteúdo da lista vinculada = {Java, Python, Scala, Swift} Conteúdo após a edição = {Java, Python, JavaScript, Kotlin, Scala, Swift} Conteúdo após adição = {Primeiro curso, Java, Python, JavaScript, Kotlin, Scala, Swift, Último curso} Primeiro item = {Primeiro curso} Conteúdo após atualizar o primeiro item = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Último curso} Conteúdo após exclusão do item na 2ª e 3ª posição = {Java9, Python, Kotlin, Scala, Swift, Last Course} Conteúdo final após a remoção do primeiro e último item = {Python, Kotlin, Scala, Swift} Lista exibida usando iterator = Python Kotlin Scala Swift

Agora, vamos avançar para o próximo tópico.

O que é um ArrayList?

é a implementação de List Interface onde os elementos podem ser adicionados ou removidos dinamicamente da lista correspondente. Aqui, o tamanho da lista é aumentado dinamicamente se os elementos forem adicionados mais do que o tamanho inicial ou real. Embora possa ser mais lento do que os arrays padrão, pode ser útil em programas em que é necessária muita manipulação no array.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList é usado para estes fins:

  • ArrayList em Java é usado para loja uma coleção de elementos de tamanho dinâmico.
  • Ele é inicializado por um tamanho. No entanto, o tamanho pode aumentar se a coleção crescer e diminuir se os objetos forem removidos do .
  • Além disso, ArrayList permite que você acesse a lista aleatoriamente.

Vamos seguir em frente e apontar as semelhanças entre LinkedList e ArrayList em Java.

Semelhanças entre LinkedList e ArrayList

Essas são as semelhanças notáveis ​​entre LinkedList e ArrayList em Java.

  • ArrayList e LinkedList são as implementações do Interface de lista .
  • Ambos ArrayList e LinkedList mantêm a ordem de inserção dos elementos. Isso significa que, ao exibir os elementos da Lista, o conjunto de resultados teria a mesma ordem em que os elementos foram inseridos na Lista.
  • Essas classesArrayList e LinkedList não são sincronizadas e podem ser sincronizadas explicitamente usando CollectionsSynchronizedList método.
  • O iterador e o ListIterator retornados por essas classes são rápidos para falhas. Isso significa que, se a lista for modificada estruturalmente a qualquer momento após a criação do iterador, exceto ométodos de remoção ou adição do próprio iterador, o iterador lançará um ConcurrentModificationException .

Diferenças entre LinkedList e ArrayList

Primeiro, vamos dar uma olhada nos parâmetros para comparar LinkedList vs ArrayList em Java.

Parâmetros para comparar LinkedList e ArrayList em Java:

  • Operação
  • Implementação
  • Processo
  • Memória
  1. Operações

As operações de inserção, adição e remoção de um item são mais rápidas em um LinkedList porque não precisamos redimensionar como fazemos em ArrayList.

2 Implementação

ArrayList é baseado no conceito de uma matriz redimensionável dinamicamente, enquanto LinkedList é baseado na implementação de lista duplamente vinculada

3 - Processo

PARA LinkedList classe pode ser usada como uma lista e uma fila porque implementa interfaces List e Deque, enquanto ArrayList só pode implementar Lists.

Quatro. Memória

PARA LinkedList consome mais memória do que um ArrayList porque cada nó em um LinkedList armazena duas referências, enquanto ArrayList contém apenas dados e seu índice

LinkedList vs ArrayList em Java

ParâmetrosLinkedListArrayList
Operações

As operações de inserção, adição e remoção são bem mais rápidas

Comparativamente as operaçõessão lentos aqui

Implementação

Segue a implementação da lista duplamente vinculada

Segue o conceito de matriz redimensionável dinamicamente

Processo

Uma classe LinkedList pode ser uma lista e uma fila porque implementa interfaces List e Deque

java o que é um token

Uma classe ArrayList pode ser uma lista porque implementa apenas Lists

Memória

O consumo de memória em LinkedList é alto

Menos em comparação com LinkedList

Isso é tudo, pessoal! Isso nos leva ao final deste artigo sobre LinkedList vs ArrayList em Java. Espero que vocês tenham entendido o que é ensinado neste artigo.

Se você encontrou este artigo em “LinkedList vs ArrayList em Java”, verifique o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Estamos aqui para ajudá-lo em todas as etapas de sua jornada e criamos um currículo que é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java.