Matrizes em são estruturas de dados homogêneas implementadas em Java como objetos. Os arrays armazenam um ou mais valores de um tipo de dados específico e fornecem acesso indexado para armazenar os mesmos. Um elemento específico em uma matriz é acessado por seu índice. Neste artigo, discutiremos Dynamic Array em Java na seguinte sequência:
- Introdução ao Dynamic Array em Java
- Tamanho x capacidade
- Apêndices de duplicação
- Excluindo um Elemento
- Redimensionando uma matriz dinâmica em Java
Introdução ao Dynamic Array em Java
A matriz dinâmica é um tipo de matriz com uma grande melhoria no redimensionamento automático. A única limitação dos arrays é que eles têm um tamanho fixo. Isso se traduz em um significado de que você só pode especificar o número de elementos que sua matriz pode conter antecipadamente. Por outro lado, os arrays dinâmicos podem se expandir conforme adicionamos mais elementos em tempo real. Portanto, o codificador não precisa determinar o tamanho da matriz com antecedência. Ele também tem mais alguns pontos fortes:
Pesquisa rápida . Da mesma forma que os arrays, ao recuperar o elemento em um determinado índice, leva tempo O (1).
Tamanho variável . Podemos inserir quantos elementos quisermos e um array dinâmico se expandirá para mantê-los.
Compatível com cache . Semelhante aos arrays, os arrays dinâmicos podem colocar itens próximos uns dos outros na memória, tornando a utilização eficiente dos caches.
Existem algumas desvantagens em usar arrays dinâmicos em nosso código. Embora usemos arrays dinâmicos mais do que qualquer coisa na maioria dos aplicativos, há alguns casos em que eles não se tornam a escolha preferida devido a suas limitações.
Anexos lentos de pior caso . Normalmente, durante a adição de um novo elemento no final de uma matriz dinâmica, leva O (1) em uma instância. No entanto, se a matriz dinâmica não tiver mais índices para um novo item, ela precisará expandir, o que leva O (n) por vez.
Inserções e exclusões caras. Semelhante aos arrays, os elementos são armazenados adjacentes uns aos outros. Portanto, ao adicionar ou remover um item no centro de uma matriz, é necessário empurrar outros elementos, o que leva O (n) de cada vez.
Os diagramas a seguir mostram como os arrays funcionam em tempo real e descrevem como os elementos são empilhados. Ele também mostra como as instruções mudam para um caso médio e o pior caso de funções de array.
Tamanho vs. Capacidade
Quando inicializamos um array dinâmico, a implementação do array dinâmico cria um array de tamanho fixo entendido. O tamanho inicial corresponde à implementação. Por exemplo, vamos fazer nosso array de implementação para usar 10 índices. Agora acrescentamos quatro itens ao nosso array dinâmico. Agora, nosso array dinâmico tem um comprimento de quatro. No entanto, nosso array subjacente tem um comprimento de 10. Portanto, podemos dizer que o tamanho do array dinâmico é quatro e sua capacidade é 10. Um array dinâmico armazena um Índice final específico para manter o controle do ponto final do array dinâmico e do início ponto de onde começa a capacidade extra.
Apêndices de duplicação
Pode haver casos em que tentamos anexar um item a uma matriz em que a capacidade já está cheia. Portanto, para criar arrays dinâmicos de ambiente, crie automaticamente um array novo, maior e subjacente. Normalmente, torna-se duas vezes maior para lidar com novas adições, o que não era antecipado. Portanto, copiar cada item não consome tempo. Sempre que anexar um item ao nosso array dinâmico cria automaticamente um novo array subjacente de tamanho duplo, que não leva tempo para anexar.
Excluindo um Elemento
Ao excluir um elemento de um array, o método padrão “remove ()” remove um elemento do final e armazena automaticamente zero no último índice. Ele também excluirá elementos em um índice específico chamando o método removeAt (i), onde “I” é o índice. O método removeAt (i) desloca todos os elementos da direita no lado esquerdo do índice fornecido.
Redimensionar uma matriz
Quando os arrays não têm dados no lado direito do array que ocupam memória desnecessária, o método srinkSize () libera memória extra. Quando todos os slots são consumidos e elementos adicionais são adicionados, a matriz de tamanho fixo subjacente precisa aumentar de tamanho. O redimensionamento real é caro, pois temos que alocar um array maior e copiar todos os elementos de um array que você cresceu demais antes que ele possa finalmente acrescentar um novo item.
Abaixo está um exemplo de um programa em que o tamanho da matriz fica cheio e novos elementos são copiados para uma nova matriz de tamanho duplo. O elemento que é um elemento string denominado “Mahavir” é uma adição ao array já completo de tamanho 3.
mesclar programa de classificação em java
import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddedItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Insira o tamanho da matriz :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Insira os elementos da matriz (Strings) :: ') para (int i = 0 iResultado:
Com isso, chegamos ao fim do artigo Dynamic Array in Java. Espero que você tenha uma ideia de como trabalhar com matrizes dinâmicas.
Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi desenvolvido para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java, como Hibernate e Spring.
Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Dynamic Array in Java” e entraremos em contato com você o mais breve possível.