O que é um Arraylist?
Uma Arraylist na programação de computador é uma estrutura de dados que se comporta como uma matriz de computador, mas também implementa a capacidade de aumentar dinamicamente o tamanho da matriz, conforme necessário. Ao contrário de um tipo de dados intrínseco de matriz, que não pode ser redimensionado durante a execução do programa, a estrutura do Arraylist pode crescer e diminuir o tamanho da matriz em resposta à adição ou exclusão de elementos. Possui um perfil de desempenho muito favorável, permitindo acesso aleatório rápido à coleta de dados. Existem duas instâncias, no entanto, nas quais é mais lenta do que algumas outras estruturas de dados, a saber, a adição e a remoção de elementos do meio da matriz. A maioria das linguagens de programação orientada a objetos tem algum tipo de implementação dessa lista, embora às vezes sejam chamados de matrizes dinâmicas.ed com listas vinculadas. Com a capacidade de aumentar o tamanho da matriz, conforme necessário, é uma abordagem muito equilibrada que considera a flexibilidade e a velocidade. Além disso, quando os elementos são removidos dessa lista, o tamanho da matriz é reduzido, liberando espaço de memória.
Um benefício de usar uma lista de Array em algumas outras estruturas de dados é que um objeto de wrapper não é necessário para conter os dados que estão sendo armazenados. No caso de uma lista vinculada ou uma tabela de hash, geralmente é necessário um objeto separado para manter a técnica usada para manter e manipular a coleção. Com um ArrayList, a única informação necessária sobre os objetos de dados é o endereço do objeto na memória. Isso significa que haverá menos uso de memória aérea ao trabalhar com esse tipo de lista.
Um problema em potencial com o uso de uma lista de Array pode vir do sistema de implementação e gerenciamento de memória. A maioria das matrizes é Allocalizado como locais consecutivos de memória. Portanto, para usar uma lista de array de um determinado tamanho, pelo menos muita memória deve estar disponível em uma sequência ininterrupta de blocos. A matriz dinâmica pode se redimensionar várias vezes, para que a fragmentação da memória possa ocorrer e levar a uma falha de alocação de memória, interrompendo a execução do programa.
O desempenho de uma lista de Array é semelhante ao de usar uma matriz padrão, embora os tempos de acesso sejam um pouco mais lentos porque a matriz é encapsulada em um objeto. Uma instância em que uma matriz dinâmica pode desacelerar drasticamente, dependendo da implementação, é quando o tamanho da matriz precisa ser alterado. Isso pode envolver a cópia da matriz atual em uma nova matriz que foi alocada para o novo tamanho desejado, causando uma degradação temporária no desempenho. O mesmo problema pode ser experimentado ao adicionar ou remover um elemento do meio da lista, fazendo com que todos os seguintes elementos tenham que ser movidos para um novo local.