Recomendado, 2024

La Elección Del Editor

Diferencia entre la lista y ArrayList en Java

List y ArrayList son los miembros del marco de Collection. Lista es una colección de elementos en una secuencia en la que cada elemento es un objeto y se accede a los elementos por posición (índice). ArrayList crea una matriz dinámica de objetos que aumenta o se reduce de tamaño cuando sea necesario. La diferencia principal entre List y ArrayList es que List es una interfaz y ArrayList es una clase. Estudiemos la diferencia entre List y ArrayList con la ayuda del cuadro de comparación que se muestra a continuación.

Gráfica comparativa

Bases para la comparaciónListaLista de arreglo
BASICLa lista es una interfazArrayList es una clase de colección estándar.
SintaxisLista de interfacesclase ArrayList
Extender / ImplementarLa interfaz de lista amplía el Marco de Colección.ArrayList extiende AbstractList e implementa List Interface.
Espacio de nombresSystem.Collections.Generic.Sistema.Colecciones.
TrabajoSe utiliza para crear una lista de elementos (objetos) que están asociados con sus números de índice.ArrayList se utiliza para crear una matriz dinámica que contiene objetos.

Definición de lista

Lista es una interfaz que extiende el marco de la Colección . La interfaz de la lista describe la colección de elementos que se organizan de forma secuencial. La interfaz de lista se implementa mediante las siguientes clases de colección estándar como ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . La interfaz de la lista tiene elementos que están asociados con sus números de índice. Puede acceder a un elemento de la lista por su posición (índice) en la lista. Una lista creada utilizando la interfaz de lista comienza con un índice basado en cero.

Además de los métodos heredados por el marco de la Colección, la interfaz de la Lista también define algún método propio. Los métodos agregados por la interfaz de lista son, add (int, E) y addAll (int, Collection) . Estos métodos agregan un elemento a la lista por su índice. Los métodos dentro de la lista pueden lanzar una excepción como UnsupportedOperationException si el método no puede modificar la lista. Cuando un objeto en una lista es incompatible con otro objeto en la lista, entonces se lanza ClassCastException. No se permiten elementos nulos en la lista si intenta insertar un objeto nulo en la lista, se lanza NullPointerException .

Puede obtener un elemento de la lista usando el método get () . Puede establecer el valor de un elemento en la lista usando el método set () . También puede obtener la lista secundaria de la lista utilizando un método lista sublist () . Es conveniente operar en la lista secundaria en lugar de en una lista.

Definición de ArrayList

Una de las clases de colección estándar es ArrayList que extiende la clase AbstractList y también implementa la interfaz de lista . La clase ArrayList se utiliza para crear matrices dinámicas que crecen y se reducen cuando es necesario. La lista creada utilizando la clase ArrayList no es más que la matriz de objetos. En Java, la matriz estándar tiene la longitud fija, por lo tanto, debe conocer el tamaño de la matriz de antemano. Sin embargo, puede ocurrir que no sepa qué longitud de la matriz necesita hasta el tiempo de ejecución. Por lo tanto, Collection framework introdujo la clase ArrayList para superar este problema.

ArrayList tiene constructores que crean la matriz con su capacidad inicial. Aunque la capacidad del objeto de la clase ArrayList aumenta automáticamente cuando se agregan elementos a la matriz, aún así puede aumentar manualmente la capacidad del objeto de ArrayList utilizando el método asegúrese de capacidad () . Es mejor aumentar la capacidad de la matriz inicialmente en lugar de reasignar la memoria más tarde. Porque la reasignación es más costosa que asignar la memoria a la vez.

Diferencias clave entre la lista y ArrayList

  1. Una de las diferencias más importantes entre List y ArrayList es que la lista es una interfaz y ArrayList es una clase de colección estándar.
  2. La interfaz de lista amplía el marco de la Colección, mientras que ArrayList extiende la clase AbstractList e implementa las interfaces de lista .
  3. El espacio de nombres para la interfaz de lista es System.Collection.Generic mientras que, el espacio de nombres para ArrayList es System.Collection .
  4. La interfaz de lista crea una colección de elementos que se almacenan en una secuencia y se identifican o acceden mediante su número de índice. Por otro lado, ArrayList crea una matriz de objetos donde la matriz puede crecer dinámicamente cuando sea necesario.

Conclusión:

ArrayList resuelve el problema de una matriz estática en Java estándar, es decir, la matriz no puede aumentar de tamaño una vez que se crea. Cuando se crea una matriz utilizando ArrayList, se crea una matriz dinámica que puede aumentar y reducir su tamaño cuando sea necesario. La clase de colección estándar ArrayList amplía la interfaz de lista.

Top