logo

Diferencia entre lista y ArrayList

La Colección Java proporciona una arquitectura para tratar con el grupo de objetos. La colección significa una única unidad de objetos. Nos permite almacenar y manipular el grupo de objetos como una sola unidad.

Podemos realizar fácilmente muchas operaciones como buscar, ordenar, insertar, eliminar y manipular un grupo de objetos utilizando el marco de colección.

El marco de la Colección Java proporciona varias interfaces y clases. Las interfaces contienen Colocar, Lista , Queue, Deque , y las clases contienen Lista de arreglo , Vector , Lista enlazada , Conjunto de hash , Conjunto de árboles , LinkedHashSet , y Cola de prioridad .

seleccionar entre varias tablas en sql

En este apartado diferenciaremos dos elementos de la Marco de colección , que es Lista y ArrayList. List es una interfaz y ArrayList es una clase.

Diferencia entre lista y ArrayList

Interfaz de lista

La Lista es una interfaz secundaria del marco de la Colección que nos permite mantener la colección ordenada de los objetos. Podemos almacenar los valores duplicados y los elementos nulos usando List. Proporciona un método basado en índices para realizar operaciones de inserción, eliminación, búsqueda y actualización de objetos.

La interfaz Lista tiene lugar en el paquete java.util. Implementa las clases ArrayList, LinkedList, Stack y Vector. También es una base de clases ListIterator mediante la cual podemos iterar la Lista hacia adelante y hacia atrás.

La interfaz de lista proporciona acceso posicional e inserción de elementos y conserva el orden de inserción. La instancia de la Lista se puede crear utilizando las clases de implementación.

Implementación de la lista:

Podemos implementar la interfaz List usando ArrayList, LinkedList, Vector y clases de pila .

Para crear una instancia de la interfaz Lista, podemos usar las siguientes sintaxis:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Considere el siguiente ejemplo de Lista:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Producción:

infierno de devolución de llamada en javascript
 [Hello, Java, Tpoint] 

Clase ArrayList

La clase ArrayList utiliza una matriz dinámica para almacenar los elementos. La clase ArrayList actúa como una matriz, pero no tiene límite de tamaño. Podemos añadir o quitar los elementos cuando queramos. Podemos almacenar el elemento duplicado usando la clase ArrayList. Gestiona el orden de inserción internamente.

La clase ArrayList es mucho más flexible que la matriz tradicional. Implementa la interfaz List para utilizar todos los métodos de la interfaz List. Tiene lugar en Java Paquete .util.

La clase ArrayList hereda la clase AbstractList e implementa la interfaz List. Se puede acceder a sus elementos de forma aleatoria. No se puede utilizar para tipos primitivos como int, char, etc.; Para estos tipos de datos, necesitamos una clase contenedora.

Implementación de ArrayList:

Una clase ArrayList hereda todos los métodos de la clase AbstractList e implementa la interfaz List.

La clase ArrayList se puede declarar de la siguiente manera:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList se puede definir de la siguiente manera:

 ArrayList myList = new ArrayList(); 

Considere el siguiente ejemplo de ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Producción:

 [Hello, Java, Tpoint] 

Algunas diferencias clave entre la interfaz List y la clase ArrayList

Algunas diferencias importantes entre List y ArrayList son las siguientes:

  • Una de las principales diferencias es que List es una interfaz y ArrayList es una clase del marco de la colección Java.
  • El La lista amplía el marco de recopilación , comparativamente ArrayList extiende la clase AbstractList e implementa la interfaz List .
  • El espacio de nombres para List y ArrayList es System.Collection.Generic y System Collection, respectivamente.
  • La lista almacena elementos en una secuencia y se identifican por el número de índice individual. Comparativamente, ArrayList almacena los elementos en una matriz dinámica; puede crecer cuando sea necesario.

Cuando definimos la Lista de la siguiente manera:

 List myList = new ArrayList(); 

Significa que solo podemos llamar a los métodos y miembros de referencia desde la interfaz Lista.

Si definimos ArrayList de la siguiente manera:

java cast int a cadena
 ArrayList myList = new ArrayList(); 

Significa que podemos invocar métodos disponibles en ArrayList y usar sus miembros además de la Lista.

Considere la siguiente tabla para ver algunas comparaciones principales entre List y ArrayList:

Base de comparación Lista Lista de arreglo
General Es una interfaz. Es clase.
Trabajar Crea una lista de objetos a los que se puede acceder mediante el número de índice individual. Crea una matriz dinámica que se puede ampliar cuando sea necesario.
Implementación Lista lista1= nueva ArrayList(); ArrayList miLista = nueva ArrayList();
Ampliar/implementar Amplía el marco de recogida. Extiende la clase AbstractList e implementa la interfaz List.
Paquete básico Java.util Java.util
Espacio de nombres Colección.del.sistema.genérico Colección.sistema
Actuación Proporciona una manipulación más rápida de los objetos. Proporciona una manipulación lenta de objetos en comparación con List.
Creación de instancias No se puede crear una instancia. Puede ser instanciado

Conclusión

List es una interfaz y ArrayList es una clase del marco de la Colección Java. List crea una matriz estática y ArrayList crea una matriz dinámica para almacenar los objetos. Por lo tanto, la Lista no se puede expandir una vez creada, pero usando ArrayList, podemos expandir la matriz cuando sea necesario.

Es mejor utilizar la interfaz de lista si desea aprovechar el polimorfismo. En el futuro, si se nos pide que implementemos la interfaz, no necesitaremos cambiar el programa.