ArrayList en Java: una introducción para principiantes [2022]

Publicado: 2022-11-22

Una matriz es una estructura de datos generalizada y esencial en todos los lenguajes de programación con una desventaja: su tamaño es fijo. Veamos cómo ArrayList en Java puede ayudar con esto.

Una matriz puede ser de dos tipos: una matriz estática o una matriz dinámica. Una matriz no se puede aumentar dinámicamente en lenguajes de programación como Java. En cambio, el tamaño de la matriz se declara durante la inicialización de la matriz. Pero, en muchos casos, esto puede conducir a muchos problemas. Para resolver este problema, se utilizan ArrayLists en Java. El tamaño de la matriz aumenta automáticamente cuando un elemento se inserta en una ArrayList.

En este artículo, aprenderá sobre ArrayLists en Java. Comprenderá la diferencia principal entre Array y ArrayList y también aprenderá sobre los diferentes tipos de ArrayLists y cómo usarlos.

Array frente a ArrayList

La principal diferencia entre un Array y un ArrayList es que el tamaño de un Array es estático, pero el tamaño de un ArrayList puede ser dinámico. Como una matriz es fija, el tiempo para iterar sobre la matriz lleva menos tiempo que una matriz dinámica.

También hay algunas diferencias más entre ellos.

  • Una matriz estática puede ser unidimensional o multidimensional, pero una ArrayList solo puede ser unidimensional.
  • Un Array es una estructura de datos primitiva disponible en Java. Pero un ArrayList es parte de una API de marco de colección en Java. Está construido sobre Arrays.
  • Puede declarar matrices con tipos de datos primitivos. Los tipos de datos primitivos no se pueden usar en un ArrayList. Si desea utilizar un tipo de datos primitivo, deberá utilizar la clase contenedora correspondiente del tipo de datos.

Tipos de ArrayLists en Java

ArrayLists puede ser de cualquier tipo. Pero deberá pasar la clase contenedora correspondiente porque no puede pasar tipos de datos primitivos en un ArrayList.

Puede agregar tipos de datos simples como enteros o tipos de cadenas pasando clases contenedoras como Integer o String .

También puede pasar tipos complejos como ArrayLists de ArrayLists, hashmaps, etc.

Echemos un vistazo a un ejemplo del uso de una clase personalizada dentro de una ArrayList.

 import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32

En el ejemplo de código anterior, se crea una ArrayList de tipo User . Aprenderá más acerca de los métodos utilizados en el siguiente ejemplo.

Crear una ArrayList en Java

Ya has entendido los conceptos básicos de un ArrayList en Java. Ahora echemos un vistazo a la sintaxis de un ArrayList y, a continuación, también veremos cómo se puede usar en código Java.

 ArrayList<Type> listName = new ArrayList<>();

El fragmento anterior muestra la sintaxis para definir una ArrayList. El Type define el tipo de ArrayList. Por ejemplo, si desea declarar una ArrayList de tipos de datos enteros, puede pasar <Integer> . Tenga en cuenta que no puede pasar int ya que es un tipo de datos primitivo.

También deberá importar java.util.ArrayList para usar ArrayList en sus programas. Aquí hay un ejemplo básico de un programa que declara una ArrayList:

 import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []

En el código anterior, se declara una ArrayList denominada rainbow de tipo String .

Para trabajar con ArrayList, hay varios métodos disponibles. Echemos un vistazo a algunos métodos.

El método de add

La clase ArrayList proporciona varios métodos para realizar operaciones como agregar o eliminar elementos, obtener valores, establecer un valor en una posición específica, borrar una ArrayList, etc.

El primer método que veremos es el método add .

El método add se usa para agregar un solo elemento a una ArrayList . La sintaxis para add se muestra a continuación.

 arrayList.add(int i, Element)

Entendamos la sintaxis ahora. El primer parámetro i es un parámetro opcional que representa la posición del índice donde se encuentra el elemento que desea agregar. El segundo parámetro Element es el elemento que desea agregar. Echemos un vistazo a un ejemplo ahora.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]

El rainbow.add("Violet") agrega un elemento al final de una ArrayList. Y el rainbow.add(0, "Red") agrega el elemento Red a la posición de índice 0 de ArrayList. El método add() devuelve true cuando un elemento se inserta correctamente.

El método get

El método get se usa para obtener el valor de una posición específica de un ArrayList.

 arrayList.get(int i);

La i que se muestra en la sintaxis anterior es la posición del índice. Por ejemplo, si desea obtener el elemento de la posición de índice 1 , escriba arrayList.get(1) .

 rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet

El código anterior devolverá Violet del rainbow de ArrayList.

El método set

El método set se usa para reemplazar el valor de un artículo. Por ejemplo, si desea reemplazar el valor de un elemento en la posición de índice 0 , escriba rainbow.set(0, "Purple") , asumiendo que tiene una ArrayList llamada rainbow .

La sintaxis para el método set es la siguiente,

 arrayList.set(int i, Element);

Donde i es la posición del índice y Element es el valor del nuevo elemento.

 rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]

En el ejemplo anterior, agregamos dos valores a un ArrayList llamado rainbow . Primero, se agrega el elemento Violet , luego en la posición 0 de ArrayList, agregamos el elemento Red . En este punto, la ArrayList completa se ve así, [Red, Violet] .

Ahora, el elemento en la posición de índice 1 se reemplaza con el valor Purple usando el método set . Después de reemplazar el valor, ArrayList se verá así, [Red, Purple] .

El método de remove

El método de remove de ArrayList se utiliza para eliminar un valor de ArrayList. Puede pasar el valor o la posición del índice del valor que desea eliminar. La sintaxis para el método remove se muestra a continuación:

 arrayList.remove(Object value); // or arrayList.remove(int i);

Tomemos un ejemplo para una mejor comprensión del método. Suponga que tiene una ArrayList llamada rainbow con estos valores [Violet, Red, Green] . Ahora, si desea eliminar Red de ArrayList, puede escribir rainbow.remove("Red"); . Llamar a este método en el ArrayList del rainbow eliminará el elemento Red de él.

 // rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]

También puede pasar la posición de índice para eliminar el elemento en la posición de índice.

 //rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]

El método clear

Como sugiere el nombre, el método clear elimina todos los elementos de una ArrayList. La sintaxis es sencilla y no requiere ningún parámetro.

 arraylist.clear()

Veamos un ejemplo,

 rainbow.clear(); System.out.println(rainbow); Output: []

El método clear no devuelve ningún valor. En su lugar, borra el valor de la ArrayList dada.

El método de size

El método de size devuelve el tamaño de la ArrayList dada. Este método tampoco toma ningún parámetro. La sintaxis se muestra a continuación.

 arrayList.size();

arrayList es el nombre de ArrayList aquí. Comprendamos el método del size con la ayuda de un ejemplo.

 ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3

Este método devuelve el valor del tamaño de ArrayList. En el ejemplo anterior, el rainbow ArrayList consta de tres valores, por lo que el método de size devuelve 3.

Conclusión

Este artículo discutió qué es un ArrayList y en qué se diferencia de un Array. También vimos cómo se puede declarar y utilizar una ArrayList usando varios métodos disponibles para la clase ArrayList.

Si desea profundizar en el aprendizaje de Java, consulte estos cursos de Java en línea.