Diferença entre List e ArrayList em Java

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 15 Poderia 2024
Anonim
Diferença entre List e ArrayList em Java - Tecnologia
Diferença entre List e ArrayList em Java - Tecnologia

Contente


List e ArrayList são os membros da estrutura 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 (índice). ArrayList cria uma matriz dinâmica de objetos que aumenta ou diminui de tamanho sempre que necessário. A principal diferença entre List e ArrayList é que Lista é uma interface e ArrayList é uma classe. Vamos estudar a diferença entre a Lista e a MatrizList com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoListaArrayList
BasicLista é uma interfaceArrayList é uma classe de coleção padrão.
Sintaxelista de interfaceclasse ArrayList
Estender / ImplementarA interface de lista estende o Framework de Coleção.ArrayList estende AbstractList e implementa List Interface.
NamespaceSystem.Collections.Generic.System.Collections.
TrabalhosÉ 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

A lista é uma interface que estende a Coleção estrutura. A interface de lista descreve a coleção de elementos organizados seqüencialmente. 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 pela estrutura Collection, a interface List também define algum método próprio. Os métodos adicionados pela interface da lista são, adicionar (int, E) e addAll (int, Coleção). Esses métodos adicionam um elemento à lista por seu índice. Métodos dentro da lista podem gerar 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çada. Elementos nulos não são permitidos na lista se você tentar inserir um objeto nulo na lista, Null Pointer Exception é jogado.


Você pode obter um elemento da lista usando pegue() método. Você pode definir o valor de um elemento na lista usando conjunto() método. Você também pode obter a sublist da lista usando um método sublist (). Torna-se conveniente operar na sublist, em vez de em uma lista.

Definição de ArrayList

Uma das classes de coleção padrão é ArrayList, que estende AbstractList classe e também implementa o Lista interface. A classe ArrayList é usada para criar matrizes dinâmicas que aumentam e diminuem sempre que necessário. A lista criada usando a classe ArrayList nada mais é do que a matriz de objetos. Em Java, a matriz padrão tem o comprimento fixo; portanto, você deve conhecer o tamanho da matriz com antecedência. Mas, pode ser que você não saiba qual o comprimento da matriz necessário até o tempo de execução. Portanto, a estrutura Collection introduziu a classe ArrayList para superar esse problema.

ArrayList possui construtores que criam a matriz com sua capacidade inicial. Embora a capacidade do objeto da classe ArrayList aumente automaticamente quando elementos são adicionados à matriz, você pode aumentar manualmente a capacidade do objeto de ArrayList usando o método garantirCapacidade (). É melhor aumentar a capacidade da matriz inicialmente em vez de realocar a memória posteriormente. Porque a realocação é mais cara do que alocar a memória de uma só vez.

  1. Uma das diferenças mais importantes entre List e ArrayList é que a lista é um interface e ArrayList é uma coleção padrão classe.
  2. A interface de lista estende o Coleção estrutura, enquanto o ArrayList estende AbstractList Classe e implementa Lista interfaces.
  3. O espaço para nome da interface da lista é System.Collection.Generic enquanto que 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 ​​por seu número de índice. Por outro lado, ArrayList cria uma matriz de objetos em que a matriz pode crescer dinamicamente quando necessário.

Conclusão:

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