Diferencia entre matrices y listas de matrices

Diferencia entre matrices y listas de matrices

Matrices vs listas de matrices

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 fácilmente matrices y elementos de acceso en las matrices. Una lista de matrices puede verse como una matriz dinámica, que puede crecer en tamaño. Debido a esta razón, el programador no necesita saber el tamaño de ArrayList cuando lo está definiendo.

¿Qué son las matrices??

Se muestra en la Figura 1, se utiliza un código que se usa típicamente 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 almacenada en la memoria

El código anterior, define una matriz que puede almacenar 5 enteros y se accede a ellos utilizando los índices 0 a 4. Una propiedad importante de una matriz es que, la matriz completa 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, tendría que definir una matriz lo suficientemente grande como para estar en el lado seguro. Pero, la mayoría de las veces, en realidad vamos a usar menos número de elementos de los que hemos asignado. Entonces, una cantidad considerable de memoria en realidad se desperdicia. Por otro lado, si la "matriz lo suficientemente grande" no es realmente lo suficientemente grande, el programa se bloquearía.

¿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 matrices son ideales para ser utilizadas en una situación en la que no conoce el tamaño de los elementos requeridos en el momento de la declaración. En Java, ArrayLists solo puede contener objetos, no pueden contener tipos primitivos directamente (puede colocar los tipos primitivos dentro de un objeto o usar las clases de envoltura de los tipos primitivos). En general, las listas de matriz tienen métodos para realizar inserción, eliminación y búsqueda. La complejidad del tiempo para acceder a un elemento es O (1), mientras que la inserción y la eliminación tienen una complejidad de tiempo de O (n). En Java, las listas de matrices se pueden atravesar utilizando bucles de foreach, iteradores o simplemente usando los índices.

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

A pesar de que las matrices y las listas de matrices 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 administrarse 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 matrices después de que se define y esto no es posible con las matrices. Pero en Java, las listas de matrices no pueden contener tipos primitivos, pero las matrices se pueden usar para mantener tipos primitivos. Pero si necesita una estructura de datos que pueda variar su tamaño, ArrayList sería la mejor opción.