Diferencias entre List y Arraylist en Java
ArrayList
y List
son miembros del marco Collection en Java, donde ArrayList
es una clase y List
es una interfaz. Podemos realizar diferentes operaciones como eliminación, inserción, clasificación, manipulación y búsqueda en un grupo de objetos con la ayuda del marco Collection.
Marco de colección
El marco de la colección en Java tiene el siguiente conjunto de interfaces y clases:
Interfaz:
- conjunto
- Cola
- Lista
- Deque
Clases:
- ArrayLista
- Vectores
- Lista Vinculada
- HashSet
- Conjunto de árboles
- Conjunto de hash vinculado
- Cola de prioridad
El marco Collection tiene diferentes clases e interfaces, pero este artículo se centrará solo en List
y ArrayList
, así que analicemos cada uno con un ejemplo.
Lista en Java
En Java, List
pertenece al framework Collection. Es un grupo ordenado de objetos representados como una sola unidad.
Podemos almacenar tipos heterogéneos de datos en una lista y acceder a los datos en función de los índices de los elementos de la lista. Puede realizar diferentes operaciones como eliminar, insertar, actualizar y buscar en una lista en Java.
La interfaz Lista
se puede encontrar en el paquete java.util
. Hereda la interfaz Collection.
Implementa las clases LinkedList
, Stack
, ArrayList
y Vector
. Podemos iterar sobre una lista tanto en dirección hacia atrás como hacia adelante.
package articlecodesinjava;
import java.util.ArrayList;
import java.util.List;
class TestingList {
public static void main(String[] args) {
List<String> list = new ArrayList<>(); // List object
list.add("Successfully created a list in Java"); // adding a string to the List
System.out.println(list);
}
}
Producción :
[Successfully created a list in Java] //The output is in List form
Métodos de lista incorporados en Java
En Java, una lista tiene varios métodos específicos. Estos se utilizan para diferentes propósitos; algunos de los más populares y frecuentes son los siguientes:
package articlecodesinjava;
import java.util.*;
class TestingList {
public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.add(1); // Adding values in list
list.add(2);
System.out.println("List after adding values " + list);
list.removeAll(list); // return and empty list, all values are erased
System.out.println("List after the removeAll method " + list);
list.add("3"); // Adding values in list
list.add("4");
System.out.println("New list " + list);
System.out.println("The size of the List " + list.size());
System.out.println("Return a value from the list a 1 position " + list.get(1));
System.out.println("Removing value at position 1 = " + list.remove(1));
System.out.println("Final list" + list);
}
}
Producción :
List after adding values [1, 2]
List after the removeAll method []
New list [3, 4]
The size of the List 2
Return a value from the list a 1 position 4
Removing value at position 1 = 4
Final list[3]
Primero, hemos importado el paquete java.util.*
para acceder a List
y ArrayList
en el programa anterior. Luego creamos una lista y, con el objeto de la lista, primero completamos algunos valores con add()
, luego eliminamos todos los datos de la lista con removeAll()
y devolvió una lista vacía.
Además, nuevamente hemos agregado algunos valores en la lista para realizar otras operaciones en la lista. Encontramos el tamaño de la lista con size()
y mostramos un valor en la posición/índice número 1 con get(1)
, y al final, hemos eliminado un valor en el índice número 1 con remove(1)
.
La lista tiene toneladas de métodos integrados. Puedes leer más en el sitio oficial de Java.
ArrayList en Java
En Java, ArrayList
es una versión avanzada de la matriz tradicional. La matriz tradicional tiene un tamaño fijo, por lo que no era posible aumentar y reducir el tamaño de la matriz.
Por lo tanto, el marco de Collection presenta una matriz dinámica conocida como ArrayList
. La clase ArrayList
es una matriz dinámica que puede expandir y reducir su tamaño al agregar y eliminar elementos de la lista.
Hereda la clase AbstractList
e implementa la interfaz List
para utilizar todos los métodos de la interfaz List
. Se puede acceder a los elementos a través de los índices de los elementos de la lista.
ArrayList
no admite tipos de datos primitivos como char, int, float, etc. Pero usamos la clase contenedora para tales casos.
package articlecodesinjava;
import java.util.ArrayList;
class TestingArrayList {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>(); // ArrayList object
arrayList.add("Successfully created an arrayList in Java"); // adding a string to the ArrayList
System.out.println(arrayList);
}
}
Producción :
[Successfully created an arrayList in Java]
Métodos ArrayList incorporados en Java
ArrayList
extiende AbstractList
, que implementa List
, por lo que podemos usar todos los métodos de List
en ArrayList
.
Vea el ejemplo a continuación. Usaremos todos los programas anteriores con los mismos métodos en ArrayList
.
Ejemplo de código:
package articlecodesinjava;
import java.util.*;
class TestingArrayList {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList<>();
arrayList.add(1); // Adding values in ArrayList
arrayList.add(2);
System.out.println("ArrayList after adding values " + arrayList);
arrayList.removeAll(arrayList); // return and empty ArrayList, all values are erased
System.out.println("ArrayList after the removeAll method " + arrayList);
arrayList.add("3"); // Adding values in ArrayList
arrayList.add("4");
arrayList.add(0, 5);
System.out.println("New ArrayList " + arrayList);
System.out.println("The size of the ArrayList " + arrayList.size());
System.out.println("Return a value from the ArrayList at 1 position " + arrayList.get(1));
System.out.println("Removing value at position 1 = " + arrayList.remove(1));
System.out.println("Final ArrayList" + arrayList);
}
}
Producción :
ArrayList after adding values [1, 2]
ArrayList after the removeAll method []
New ArrayList [5, 3, 4]
The size of the ArrayList 3
Return a value from the ArrayList at 1 position 3
Removing value at position 1 = 3
Final ArrayList[5, 4]
Diferencias entre List y ArrayList en Java
A continuación se muestran algunas de las diferencias clave entre List
y ArrayList
en Java:
Lista
Lista
es una interfaz.- La interfaz
Lista
amplía el marco de la colección. - No se puede instanciar.
- Crea una lista de objetos.
- Las
listas
son más rápidas en la manipulación de objetos.
Lista de arreglo
ArrayList
es una clase de colección estándar.ArrayList
amplíaAbstractList
, que implementa las interfacesList
.- Se puede instanciar.
- crea una matriz de objetos.
ArrayLists
no son tan rápidos en la manipulación de objetos en comparación con List.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInArtículo relacionado - Java List
- Dividir una lista en trozos en Java
- Encuentre el índice de un elemento en una lista usando Java
- Lista de filtros en Java
- Obtener el primer elemento de la lista en Java
- Convertir colección a lista en Java