Diferencia entre List y ArrayList en Java

Una colección es un grupo de objetos individuales representados como una sola unidad. Java proporciona Collection Framework que define varias clases e interfaces para representar un grupo de objetos como una sola unidad. Este framework consta de List Interface y de la clase ArrayList. En este artículo, se analiza la diferencia entre List y ArrayList.

Difference-between-List-and-ArrayList-in-Java

List es una interfaz secundaria de Collection . Es una colección ordenada de objetos en los que se pueden almacenar valores duplicados. Dado que List conserva el orden de inserción, permite el acceso posicional y la inserción de elementos. La interfaz de lista se implementa mediante las clases de ArrayList , LinkedList , Vector y Stack . List es una interfaz, y las instancias de List se pueden crear implementando varias clases.

Geek, si lo anterior suena confuso, consulte la imagen a continuación, donde puede detectar fácilmente la jerarquía y la interfaz de Lista que consta de clases antes de aterrizar en la implementación de la interfaz de Lista.

Ejemplo

Java

// Java program to demonstrate the
// working of a List with ArrayList
// class
 
// Importing all utility classes
import java.util.*;
 
// Main class
public class GFG {
   
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of List class
          // Declaring an object of String type with
        // reference to ArrayList class
        // Type safe list
        List<String> al = new ArrayList<String>();
       
        // Adding elements using add() method
        // Custom input elements
        al.add("Geeks");
        al.add("for");
        al.add("Geeks");
 
        // Print and display the elements in
        // ArrayList class object
        System.out.println(al);
    }
}
Producción

[Geeks, for, Geeks]

Ahora, pensando en el próximo concepto de ArrayList en Java. Entonces, ArrayList es básicamente una parte del marco de la colección y está presente en el paquete java.util. Nos proporciona arreglos dinámicos en Java. Esta clase implementa la interfaz List. Similar a una lista, el tamaño de ArrayList aumenta automáticamente si la colección crece o se reduce si los objetos se eliminan de la colección. Java ArrayList nos permite acceder aleatoriamente a la lista. ArrayList no se puede usar para tipos primitivos, como int, char, etc. Necesitamos una clase contenedora para tales casos. El siguiente es un ejemplo para demostrar la implementación de un ArrayList.

Sintaxis:

new ArrayList();

Esto simplemente crea una nueva memoria en la memoria del montón. Para acceder al objeto, necesitamos una variable de referencia, ya que es una regla general en la programación orientada a objetos.

ArrayList obj = new ArrayList();

Hasta ahora solo hemos creado un objeto, pero no está definido qué tipo de elementos habrá en nuestro objeto ArrayList. Entonces, como de costumbre, usaremos identificadores para pasar el tipo String, el tipo Entero, ambos o algunos otros tipos. Es como se muestra a continuación.

ArrayList<Integer> obj = new ArrayList<>();
ArrayList<String> obj = new ArrayList<>();

Nota: Al agregar los elementos a ArrayList, si agregamos un elemento en un índice, diga ‘i’th, luego en nuestro ArrayList, todos los elementos se desplazan hacia la derecha, donde el elemento anterior que estaba en ‘i’th antes de la adición ahora estará en ‘i +1’ índice. No será un reemplazo poco probable, como vemos en las arrays.

Entonces, por ahora, hemos terminado con la comprensión de declarar y cómo inicializar una Lista a través de una comprensión anterior de la sintaxis, implementemos ahora lo mismo dentro de un programa para obtener una mejor comprensión. 

Ejemplo:

Java

// Java Program to Demonstrate
// Working of an ArrayList class
 
// Importing all classes from java.util package
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an ArrayList of String type
        // Type safe ArrayList
        ArrayList<String> al = new ArrayList<String>();
 
        // Adding elements to above object created
        // Custom input elements
        al.add("Geeks");
        al.add("for");
        al.add("Geeks");
 
        // Print and display the elements of ArrayList
        System.out.println(al);
 
        // adding element at index where
        // element is already present
        al.add(1, "Hi");
 
        // Print and display the elements of ArrayList
        System.out.println(al);
    }
}
Producción

[Geeks, for, Geeks]
[Geeks, Hi, for, Geeks]

Ahora analicemos las diferencias entre dos clases en Java, como se discutió anteriormente, son las clases List vs ArrayList, se muestran a continuación en el formato tabular a continuación para una comprensión clara de líneas finas.

Lista vs ArrayList en Java

Lista Lista de arreglo
La lista es una interfaz ArrayList es una clase
La interfaz de lista amplía el marco de la colección ArrayList extiende la clase AbstractList e implementa la interfaz List
La lista no puede ser instanciada. Se puede crear una instancia de ArrayList.
La interfaz de lista se utiliza para crear una lista de elementos (objetos) que están asociados con sus números de índice. La clase ArrayList se usa para crear una array dinámica que contiene objetos.
La interfaz de lista crea una colección de elementos que se almacenan en una secuencia y se identifican y se accede a ellos mediante el índice. ArrayList crea una array de objetos donde la array puede crecer dinámicamente.

Publicación traducida automáticamente

Artículo escrito por KaashyapMSK y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *