¿Qué es Dynamic Array en Java?



La matriz dinámica en Java es un tipo de matriz con una gran mejora para el cambio de tamaño automático. La única limitación de las matrices es que tiene un tamaño fijo.

Matrices en son estructuras de datos homogéneas implementadas en Java como objetos. Las matrices almacenan uno o más valores de un tipo de datos específico y proporcionan acceso indexado para almacenar los mismos. Se accede a un elemento específico de una matriz mediante su índice. En este artículo, analizaremos Dynamic Array en Java en la siguiente secuencia:

Introducción a Dynamic Array en Java

La matriz dinámica es un tipo de matriz con una gran mejora para el cambio de tamaño automático. La única limitación de las matrices es que tiene un tamaño fijo. Esto se traduce en un significado de que solo puede especificar la cantidad de elementos que su matriz puede contener antes de tiempo. Por otro lado, las matrices dinámicas pueden expandirse a medida que agregamos más elementos en tiempo real. Por lo tanto, el codificador no necesita determinar el tamaño de la matriz de antemano. También tiene algunas fortalezas más:





  • Búsqueda rápida . Al igual que las matrices, cuando se recupera el elemento en un índice dado, toma O (1) tiempo.



  • Tamaño variable . Podemos insertar tantos elementos como queramos y, en consecuencia, una matriz dinámica se expandirá para contenerlos.

  • Compatible con caché . De manera similar a las matrices, las matrices dinámicas pueden colocar elementos uno al lado del otro en la memoria, haciendo así un uso eficiente de los cachés.



Hay algunas desventajas de usar matrices dinámicas en nuestro código. Aunque usamos matrices dinámicas más que cualquier otra cosa en la mayoría de las aplicaciones, hay algunos casos en los que no se convierten en la opción preferida debido a sus limitaciones.

  • Anexos lentos en el peor de los casos . Normalmente, mientras se agrega un nuevo elemento al final de una matriz dinámica, toma O (1) en una instancia. Sin embargo, si la matriz dinámica no tiene más índices para un nuevo elemento, deberá expandirse, lo que requiere O (n) a la vez.

  • Inserciones y eliminaciones costosas. De manera similar a las matrices, los elementos se almacenan adyacentes entre sí. Entonces, al agregar o eliminar un elemento en el centro de una matriz, es necesario presionar otros elementos, lo que toma O (n) a la vez.

Los siguientes diagramas muestran cómo funcionan las matrices en tiempo real y describen cómo se apilan los elementos. También muestra cómo cambian las instrucciones para un caso promedio y el peor de los casos de funciones de matriz.

matriz - matriz dinámica en java - edureka

Tamaño frente a capacidad

Cuando inicializamos una matriz dinámica, la implementación de la matriz dinámica crea una matriz de tamaño fijo entendida. El tamaño inicial corresponde a la implementación. Por ejemplo, hagamos nuestra matriz de implementación para usar 10 índices. Ahora agregamos cuatro elementos a nuestra matriz dinámica. Ahora, nuestra matriz dinámica tiene una longitud de cuatro. Sin embargo, nuestra matriz subyacente tiene una longitud de 10. Por lo tanto, podríamos decir que el tamaño de la matriz dinámica es cuatro y su capacidad es 10. Una matriz dinámica almacena un índice final específico para realizar un seguimiento del punto final de la matriz dinámica y el inicio punto desde donde comienza la capacidad extra.

orden de algoritmo c ++

Duplicar anexos

Puede haber casos en los que intentemos agregar un elemento a una matriz donde la capacidad ya está llena. Por lo tanto, para crear matrices dinámicas de sala, cree automáticamente una matriz nueva, más grande y subyacente. Por lo general, se vuelve dos veces más grande para manejar nuevas adiciones, que no anticipaba antes. Por lo tanto, copiar cada elemento no consume tiempo. Siempre que se agrega un elemento a nuestra matriz dinámica, se crea automáticamente una nueva matriz subyacente de doble tamaño, que se agrega rápidamente.

Eliminar un elemento

Al eliminar un elemento de una matriz, el método 'remove ()' predeterminado elimina un elemento del final y almacena automáticamente cero en el último índice. También eliminará elementos en un índice específico llamando al método removeAt (i) donde 'I' es índice. El método removeAt (i) desplaza todos los elementos de la derecha en el lado izquierdo del índice dado.

Cambiar el tamaño de una matriz

Cuando las matrices no tienen datos en el lado derecho de la matriz que ocupan memoria innecesaria, el método srinkSize () libera memoria extra. Cuando se consumen todas las ranuras y se agregan elementos adicionales, la matriz de tamaño fijo subyacente debe aumentar de tamaño. El cambio de tamaño real es costoso, ya que tenemos que asignar una matriz más grande y copiar todos los elementos de una matriz que ha crecido demasiado antes de que finalmente pueda agregar un nuevo elemento.

A continuación se muestra un ejemplo de un programa en el que el tamaño de la matriz se llena y los elementos nuevos se copian en una nueva matriz de tamaño doble. El elemento que es un elemento de cadena llamado 'Mahavir' es una adición a la matriz ya completa de tamaño 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Ingrese el tamaño de la matriz :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Ingrese elementos de la matriz (Strings) :: ') para (int yo = 0 yo

Salida:

Con esto, llegamos al final del artículo Dynamic Array in Java. Espero que tengas una idea de cómo trabajar con matrices dinámicas.

Revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog de “Dynamic Array in Java” y nos comunicaremos con usted lo antes posible.