Diferença entre List e ArrayList em Java
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.
- Gráfico de comparação
- Definição
- Principais diferenças
- Conclusão
Gráfico de comparação
Base para Comparação | Lista | ArrayList |
---|---|---|
Basic | Lista é uma interface | ArrayList é uma classe de coleção padrão. |
Sintaxe | lista de interface | classe ArrayList |
Estender / Implementar | A interface de lista estende o Framework de Coleção. | ArrayList estende AbstractList e implementa List Interface. |
Namespace | System.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.
- Uma das diferenças mais importantes entre List e ArrayList é que a lista é um interface e ArrayList é uma coleção padrão classe.
- A interface de lista estende o Coleção estrutura, enquanto o ArrayList estende AbstractList Classe e implementa Lista interfaces.
- O espaço para nome da interface da lista é System.Collection.Generic enquanto que o namespace para ArrayList é System.Collection.
- 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.