
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 interfaces | classe ArrayList |
Estender / Implementar | A interface de lista estende o Framework de coleção. | O ArrayList estende o AbstractList e implementa o List Interface. |
Namespace | System.Collections.Generic. | System.Collections. |
Trabalhos | Ele é 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
- Uma das diferenças mais importantes entre List e ArrayList é que list é uma interface e ArrayList é uma classe Collection padrão.
- A interface List estende a estrutura Collection, enquanto a ArrayList estende a classe AbstractList e implementa as interfaces List .
- O namespace da interface List é System.Collection.Generic, enquanto 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 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.