logo

Diferença entre Lista e ArrayList

A Coleção Java fornece uma arquitetura para lidar com o grupo de objetos. A coleção significa uma única unidade de objetos. Permite-nos armazenar e manipular o grupo de objetos como uma única unidade.

Podemos realizar facilmente muitas operações, como pesquisa, classificação, inserção, exclusão e manipulação em um grupo de objetos usando a estrutura de coleção.

A estrutura Java Collection fornece várias interfaces e classes. As interfaces contêm Definir, Lista , Fila, Deque , e as classes contêm ListaArray , Vetor , Lista vinculada , HashSet , Conjunto de árvores , LinkedHashSet , e Fila de prioridade .

peso de kat timpf

Nesta seção, diferenciaremos dois elementos do Estrutura de coleção , que é Lista e ArrayList. A Lista é uma interface e ArrayList é uma classe.

Diferença entre Lista e ArrayList

Interface de lista

A Lista é uma interface filha do framework Collection que nos permite manter a coleção ordenada dos objetos. Podemos armazenar os valores duplicados e elementos nulos usando List. Ele fornece um método baseado em índice para executar operações de inserção, exclusão, pesquisa e atualização nos objetos.

A interface List ocorre no pacote java.util. Ele implementa as classes ArrayList, LinkedList, Stack e Vector. É também uma base de classes ListIterator com as quais podemos iterar a Lista nas direções para frente e para trás.

A interface de lista fornece acesso posicional e inserção de elementos e preserva a ordem de inserção. A instância da Lista pode ser criada usando as classes de implementação.

Implementação da lista:

Podemos implementar a interface List usando ArrayList, LinkedList, Vector e Classes de pilha .

Para instanciar a interface List, podemos usar as seguintes sintaxes:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Considere o exemplo abaixo de lista:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Saída:

programação java números primos
 [Hello, Java, Tpoint] 

Classe ArrayList

A classe ArrayList usa um array dinâmico para armazenar os elementos. A classe ArrayList atua como um array, mas não há limite de tamanho. Podemos adicionar ou remover os elementos sempre que quisermos. Podemos armazenar o elemento duplicado usando a classe ArrayList. Ele gerencia a ordem de inserção internamente.

A classe ArrayList é muito mais flexível que o array tradicional. Ele implementa a interface List para usar todos os métodos da Interface List. Acontece em Java Pacote .util.

A classe ArrayList herda a classe AbstractList e implementa a interface List. Os elementos dele podem ser acessados ​​aleatoriamente. Não pode ser usado para tipos primitivos como int, char, etc.; para esses tipos de dados, precisamos de uma classe wrapper.

Implementação de ArrayList:

Uma classe ArrayList herda todos os métodos da classe AbstractList e implementa a interface List.

A classe ArrayList pode ser declarada da seguinte forma:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList pode ser definido da seguinte forma:

 ArrayList myList = new ArrayList(); 

Considere o exemplo abaixo de ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Saída:

 [Hello, Java, Tpoint] 

Algumas diferenças importantes entre a interface de lista e a classe ArrayList

Algumas diferenças principais entre List e ArrayList são as seguintes:

  • Uma das principais diferenças é que List é uma interface e ArrayList é uma classe da estrutura de coleção Java.
  • O Lista estende a estrutura de coleção , comparativamente ArrayList estende a classe AbstractList e implementa a interface List .
  • O namespace para List e ArrayList é System.Collection.Generic e System Collection, respectivamente.
  • A lista armazena elementos em uma sequência e é identificada pelo número de índice individual. Comparativamente, ArrayList armazena os elementos em um array dinâmico; pode crescer quando necessário.

Quando definimos a Lista da seguinte forma:

 List myList = new ArrayList(); 

Isso significa que só podemos chamar os métodos e membros de referência da interface List.

Se definirmos o ArrayList da seguinte forma:

scanner em java
 ArrayList myList = new ArrayList(); 

Isso significa que podemos invocar métodos disponíveis em ArrayList e usar seus membros além de List.

Considere a tabela abaixo para algumas comparações principais entre List e ArrayList:

Base de Comparação Lista ListaArray
Em geral É uma interface. É aula.
Trabalhar Ele cria uma lista de objetos que podem ser acessados ​​pelo número de índice individual. Ele cria uma matriz dinâmica que pode ser expandida quando necessário.
Implementação Lista lista1= new ArrayList(); ArrayList minhaLista = new ArrayList();
Estender/Implementar Ele amplia a estrutura de coleta. Ele estende a classe AbstractList e implementa a interface List.
Pacote Básico java.util java.util
Espaço para nome System.Collection.Generic Sistema.Coleção
Desempenho Ele fornece manipulação mais rápida de objetos. Ele fornece manipulação lenta de objetos em comparação com List.
Instanciação Não pode ser instanciado. Pode ser instanciado

Conclusão

A Lista é uma interface e o ArrayList é uma classe da estrutura Java Collection. O List cria um array estático e o ArrayList cria um array dinâmico para armazenar os objetos. Portanto, a Lista não pode ser expandida depois de criada, mas usando ArrayList, podemos expandir o array quando necessário.

É melhor usar a Interface List se quiser aproveitar as vantagens do polimorfismo. No futuro, se formos obrigados a implementar a interface, não precisaremos alterar o programa.