O que é uma matriz dinâmica?
Uma matriz dinâmica é uma estrutura de dados usada na programação de computadores que mantém vários objetos de computação como um único grupo e pode ser redimensionado à vontade para acomodar números variados de objetos. O grupo é mantido em um único bloco contíguo de memória; portanto, o acesso aos elementos é eficiente e rápido. Matrizes dinâmicas também são chamadas de vetores ou listas, dependendo da linguagem do computador em que são usados. Apesar desses nomes, qualquer lista ou vetor específico pode não ser uma matriz dinâmica, uma vez que listas e vetores podem ser implementados de maneira diferente das matrizes e uma da outra. A matriz que apoia essa classe pode ser acessada por iteradores ou por índices. Sua capacidade de redimensionar sob demanda é uma grande vantagem, mas pode atrair programadores para uma falsa sensação de segurança, porque não é tão robusta quanto parece ser. A matriz dinâmica que apoia um vetor não pode garantir que CAAs solicitações de cess são válidas. Como matrizes estáticas, matrizes dinâmicas podem ter problemas de verificação e corrupção de memória se um programa tentar acessar a memória que não foi alocada para eles.
Java contém três classes de matriz dinâmica distintas: Vector, ArrayList e CopyWriteArrayList. Os elementos da matriz são acessados apenas por índices e a tentativa de acessar índices fora da matriz geralmente não causará problemas de corrupção de memória. A classe vetorial Java é aproximadamente equivalente à classe Vector C ++ e não é sincronizada para permitir o acesso por vários threads. Arraylist e CopyOnWriteArrayList, por contraste, são seguros de threads. Dos três, o copywriteArraylist é a classe mais trabalhosa, porque recria completamente a matriz dinâmica toda vez que um novo valor é escrito para a matriz.
Matrizes dinâmicas são implementadas essencialmente da mesma maneira, independentemente do Computidioma envolvido, mas dependendo de um idioma específico, pode haver outros recursos construídos sobre ele. Como matrizes estáticas, as matrizes dinâmicas não restringem o tipo de objeto que pode ser armazenado dentro deles, desde que sejam todos o mesmo tipo de objeto. Um programador nunca precisa acessar uma matriz dinâmica diretamente; Sempre pode ser feito através de uma classe que envolve a matriz para facilitar o uso. O uso adequado dessas matrizes pode ajudar um programador com a organização de dados dentro do código e também com a criação de código compreensível que se presta à manutenção fácil.