Diferencia entre arreglos y listas de arreglos

Diferencia entre arreglos y listas de arreglos
Diferencia entre arreglos y listas de arreglos

Video: Diferencia entre arreglos y listas de arreglos

Video: Diferencia entre arreglos y listas de arreglos
Video: Há, à ou a – Há x à x a (Uso do há, à e a) MUITO FÁCIL! 2024, Noviembre
Anonim

Arrays vs Arraylists

Las matrices son la estructura de datos más utilizada para almacenar una colección de elementos. La mayoría de los lenguajes de programación proporcionan métodos para declarar arreglos fácilmente y acceder a elementos en los arreglos. Una lista de matrices se puede ver como una matriz dinámica, que puede crecer en tamaño. Por esta razón, el programador no necesita conocer el tamaño de la lista de arreglos cuando la está definiendo.

¿Qué son las matrices?

En la figura 1 se muestra un fragmento de código que normalmente se usa para declarar y asignar valores a una matriz. La figura 2 muestra cómo se vería una matriz en la memoria.

valores int[5];

valores[0]=100;

valores[1]=101;

valores[2]=102;

valores[3]=103;

valores[4]=104;

Figura 1: Código para declarar y asignar valores a una matriz

100 101 102 103 104
Índice: 0 1 2 3 4

Figura 2: Array almacenado en la memoria

El código anterior define una matriz que puede almacenar 5 números enteros y se accede a ellos usando los índices 0 a 4. Una propiedad importante de una matriz es que toda la matriz se asigna como un solo bloque de memoria y cada elemento obtiene su propio espacio en la matriz. Una vez que se define una matriz, su tamaño es fijo. Entonces, si no está seguro del tamaño de la matriz en el momento de la compilación, deberá definir una matriz lo suficientemente grande para estar seguro. Pero, la mayoría de las veces, en realidad vamos a utilizar menos elementos de los que hemos asignado. Por lo tanto, se desperdicia una cantidad considerable de memoria. Por otro lado, si la "matriz lo suficientemente grande" no es lo suficientemente grande, el programa fallará.

¿Qué son las listas de matrices?

Una lista de matrices puede verse como una matriz dinámica, que puede crecer en tamaño. Por lo tanto, las listas de arreglos son ideales para usarse en situaciones en las que no conoce el tamaño de los elementos requeridos en el momento de la declaración. En Java, las listas de arreglos solo pueden contener objetos, no pueden contener tipos primitivos directamente (puede colocar los tipos primitivos dentro de un objeto o usar las clases contenedoras de los tipos primitivos). En general, las listas de arreglos cuentan con métodos para realizar la inserción, la eliminación y la búsqueda. La complejidad temporal de acceder a un elemento es o(1), mientras que la inserción y eliminación tiene una complejidad temporal de o(n). En Java, las listas de arreglos se pueden recorrer usando bucles foreach, iteradores o simplemente usando los índices.

¿Cuál es la diferencia entre matrices y listas de matrices?

Aunque los arreglos y las listas de arreglos son similares en el sentido de que ambos se usan para almacenar colecciones de elementos, difieren en cómo se definen. El tamaño de la matriz debe darse cuando se define una matriz, pero puede definir una lista de matrices sin conocer el tamaño real. Puede agregar elementos a una lista de arreglos después de definirla y esto no es posible con los arreglos. Pero en Java, las listas de matrices no pueden contener tipos primitivos, pero las matrices se pueden usar para contener tipos primitivos. Pero si necesita una estructura de datos que pueda variar su tamaño, arraylist sería la mejor opción.

Recomendado: