Recomendado, 2024

Escolha Do Editor

Diferença entre lista e ArrayList em Java

List e ArrayList são os membros do framework Collection. List é uma coleção de elementos em uma sequência em que cada elemento é um objeto e os elementos são acessados ​​por sua posição (index). ArrayList cria uma matriz dinâmica de objetos que aumenta ou reduz de tamanho sempre que necessário. A principal diferença entre List e ArrayList é que List é uma interface e ArrayList é uma classe. Vamos estudar a diferença entre List e ArrayList com a ajuda do gráfico de comparação mostrado abaixo.

Gráfico de comparação

Base para ComparaçãoListaArrayList
BasicLista é uma interfaceArrayList é uma classe de coleção padrão.
SintaxeLista de interfacesclasse ArrayList
Estender / ImplementarA interface de lista estende o Framework de coleção.O ArrayList estende o AbstractList e implementa o List Interface.
NamespaceSystem.Collections.Generic.System.Collections.
TrabalhosEle é usado para criar uma lista de elementos (objetos) associados aos seus números de índice.ArrayList é usado para criar uma matriz dinâmica que contém objetos.

Definição de lista

List é uma interface que estende o framework Collection . Interface de lista descreve a coleção de elementos organizados sequencialmente. A interface de lista é implementada pelas seguintes classes de coleção padrão, como ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . A interface de lista possui elementos associados aos seus números de índice. Você pode acessar um elemento na lista por sua posição (índice) na lista. Uma lista criada usando a interface List começa com um índice baseado em zero.

Além dos métodos herdados pelo framework Collection, a interface List também define algum método próprio. Os métodos adicionados pela interface List são, add (int, E) e addAll (int, Collection) . Esses métodos adicionam um elemento à lista por seu índice. Métodos dentro da lista podem lançar uma exceção como UnsupportedOperationException se o método não puder modificar a lista. Quando um objeto em uma lista é incompatível com outro objeto na lista, então ClassCastException é lançado. Elementos nulos não são permitidos na lista se você tentar inserir um objeto nulo na lista, NullPointerException é lançado.

Você pode obter um elemento da lista usando o método get () . Você pode definir o valor de um elemento na lista usando o método set () . Você também pode obter a sub-lista da lista usando uma sub-rotina de método () . Torna-se conveniente operar na sub-lista em vez de em uma lista.

Definição de ArrayList

Uma das classes padrão da Coleção é ArrayList, que estende a classe AbstractList e também implementa a interface List . A classe ArrayList é usada para criar as matrizes dinâmicas que crescem e diminuem sempre que necessário. A lista criada usando a classe ArrayList não é nada além da matriz de objetos. Em Java, o array padrão tem o tamanho fixo, portanto, você deve saber o tamanho do array antecipadamente. Mas, pode ser que você não saiba o comprimento da matriz necessária até o tempo de execução. Portanto, o framework Collection introduziu a classe ArrayList para superar esse problema.

ArrayList tem construtores que criam o array com sua capacidade inicial. Embora a capacidade do objeto da classe ArrayList aumente automaticamente quando os elementos são adicionados à matriz, ainda é possível aumentar manualmente a capacidade do objeto de ArrayList usando o método ensureCapacity () . É melhor aumentar a capacidade do array inicialmente em vez de realocar a memória posteriormente. Porque a realocação é mais dispendiosa do que alocar a memória de uma só vez.

Principais diferenças entre lista e ArrayList

  1. Uma das diferenças mais importantes entre List e ArrayList é que list é uma interface e ArrayList é uma classe Collection padrão.
  2. A interface List estende a estrutura Collection, enquanto a ArrayList estende a classe AbstractList e implementa as interfaces List .
  3. O namespace da interface List é System.Collection.Generic, enquanto o namespace para ArrayList é System.Collection .
  4. A interface de lista cria uma coleção de elementos que são armazenados em uma sequência e são identificados ou acessados ​​pelo seu número de índice. Por outro lado, ArrayList cria uma matriz de objetos onde a matriz pode crescer dinamicamente quando necessário.

Conclusão:

O ArrayList supera a questão de um array estático no Java padrão, ou seja, o array não pode crescer em tamanho depois de criado. Quando uma matriz é criada usando ArrayList, é criada uma matriz dinâmica que pode aumentar e diminuir em tamanho quando necessário. A classe padrão Collection ArrayList estende a interface List.

Top