Saltar al contenido

Diferencia entre Array y ArrayList

septiembre 23, 2021

En Java, formación y Lista de arreglo son las estructuras de datos más conocidas. Una matriz es una funcionalidad básica proporcionada por Java, mientras que Lista de arreglo es una clase de marco de colecciones de Java. Pertenece a java.util paquete.

Matriz de Java

Un formación es un objeto creado dinámicamente. Sirve como un contenedor que contiene el número constante de valores del mismo tipo. Tiene una ubicación de memoria contigua. Una vez que se crea una matriz, no podemos cambiar su tamaño. Podemos crear una matriz usando la siguiente declaración:

La declaración anterior crea una matriz del tamaño especificado. Cuando intentamos agregar más que su tamaño, arroja ArrayIndexOutOfBoundsException. Por ejemplo:

Clase Java ArrayList

En Java, Lista de arreglo es una clase de marco de colecciones. Implementa Lista , Colección , Iterable , Clonable, Serializable, y Acceso aleatorio interfaces. Se extiende AbstractList clase.

Podemos crear una instancia de ArrayList usando la siguiente declaración:

ArrayList está respaldado internamente por la matriz en Java. La operación de cambio de tamaño en ArrayList ralentiza el rendimiento, ya que implica una nueva matriz y la copia de contenido de una matriz antigua a una nueva. Llama al método implementado nativo System.arraycopy (sec, srcPos, dest, destPos, longitud) .

No podemos almacenar el tipo primitivo en ArrayList. Entonces, almacena solo objetos. Convierte automáticamente el tipo primitivo en objeto. Por ejemplo, hemos creado un objeto ArrayList,

La JVM lo convierte en un objeto Integer a través del auto-boxing.

Similitudes

  • Array y ArrayList se utilizan para almacenar elementos.
  • Array y ArrayList pueden almacenar valores nulos.
  • Pueden tener valores duplicados.
  • No conservan el orden de los elementos.

La siguiente tabla describe las diferencias clave entre arreglo y ArrayList:

Base Formación Lista de arreglo
Definición Un formación es un objeto creado dinámicamente. Sirve como un contenedor que contiene el número constante de valores del mismo tipo. Tiene una ubicación de memoria contigua. los Lista de arreglo es una clase de Java Colecciones estructura. Contiene clases populares como Vector, HashTable, y HashMap.
Dinámica estática Array es estático en tamaño. ArrayList es dinámica en tamaño.
Redimensionable Una matriz es una longitud fija estructura de datos. ArrayList es un Longitud variable estructura de datos. Se puede cambiar de tamaño cuando sea necesario.
Inicialización Es obligatorio proporcionar el tamaño de una matriz al inicializarla directa o indirectamente. Podemos crear una instancia de ArrayList sin especificar su tamaño. Java crea ArrayList de tamaño predeterminado.
Rendimiento Realiza rápido en comparación con ArrayList debido al tamaño fijo. ArrayList está respaldado internamente por la matriz en Java. La operación de cambio de tamaño en ArrayList ralentiza el rendimiento.
Tipo primitivo / genérico Una matriz puede almacenar ambos objetos y primitivas escribe. No podemos almacenar primitivo escriba ArrayList. Convierte automáticamente el tipo primitivo en objeto.
Iterando valores Usamos por bucle o para cada bucle para iterar sobre una matriz. Usamos un iterador para iterar sobre ArrayList.
Tipo de seguridad No podemos usar genéricos junto con la matriz porque no es un tipo de matriz convertible. ArrayList nos permite almacenar solo genérico/ type, por eso es de tipo seguro.
Largo Array proporciona un largo variable que denota la longitud de una matriz. ArrayList proporciona el Talla() método para determinar el tamaño de ArrayList.
Agregar elementos Podemos agregar elementos en una matriz usando el asignación operador. Java proporciona la agregar() método para agregar elementos en ArrayList.
Único / multidimensional La matriz puede ser multidimensional. ArrayList es siempre unidimensional.

Ejemplo de matriz en Java

En el siguiente ejemplo, simplemente hemos creado una matriz de cuatro de longitud.

Producción:

Ejemplo de ArrayList en Java

En el siguiente ejemplo, hemos creado una instancia de ArrayList y hemos realizado una iteración sobre ArrayList.

Producción:


close