Array (Un espacio de nombres del sistema) es un tipo de datos que se puede usar llamando a los índices. durante el tiempo de ejecución, uno realmente no puede cambiar el tamaño de la matriz, a menos que use el método de copiar la matriz y deshacerse de la anterior.
En .NET, Visual Studio hace uso de una clase especial para almacenar los datos. Debido a esto, el rendimiento es realmente bastante rápido. Esto también se debe a que en una matriz, necesita especificar el tamaño y, por lo tanto, los datos se almacenan uno después del otro.
Ejemplos:
int[] myNumbers= new int[5];
myNumbers[0] = 16;
ArrayList (System.Collections de espacio de nombres) es una colección de tipo de datos. Para completar un ArrayList, uno puede usar el método .Add. ArrayLists es muy dinámico en el sentido de que cuando agrega y/o elimina elementos de él, el rendimiento permanece igual.
La estructura interna de una ArrayList es una matriz.
Ejemplos:
ArrayList myArray = new ArrayList();
myArray.Add(“Steph”);
string str = myArray[0];
La mayor parte del tiempo, tienden a elegir las listas de matriz en lugar de matrices ya que no tenemos idea de lo grande que va a salir. Las matrices son ideales cuando sabes cuántos elementos va a poner en él. Siempre que sea posible, se recomienda utilizar matrices ya que esto mejora drásticamente el rendimiento.
La matriz es una secuencia de datos homogéneos, mientras que ArrayList es una secuencia de datos heterogéneos. Es por eso que tenemos que encasillar todos los datos en ArrayLists.
Las matrices son multidimensionales pero ArrayList siempre es unidimensional.
Las matrices están fuertemente tipadas y funcionan bien como parámetros. Si conoce la longitud de su colección y está reparada, debe usar una matriz.
ArrayLists no están fuertemente tipadas, cada Inserción o Retrial necesitarán un molde para volver a su tipo original. Si necesita un método para tomar una lista de un tipo específico, ArrayLists se queda corto porque podría pasar una lista de arreglos que contenga cualquier tipo. ArrayLists utiliza una matriz que se expande dinámicamente internamente, por lo que también hay un golpe para expandir el tamaño de la matriz interna cuando alcanza su capacidad.
@NikhilAgrawal no es un duplicado de ese tema ya que la pregunta es específicamente sobre las diferencias de rendimiento, no el contexto de uso. – Asik
Sospecho que ArrayList sería más lento ya que tiene que moldear cada elemento en la matriz al recuperar. – Matthew