Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Un array es una estructura de datos muy extendida 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.

Un array puede ser de dos tipos: un array estático o un array dinámico. Un array no puede aumentarse dinámicamente en lenguajes de programación como Java. En su lugar, el tamaño del array se declara durante la inicialización del array. Pero, en muchos casos, esto puede dar lugar a muchos problemas. Para resolver este problema, en Java se utilizan las ArrayLists. El tamaño del array aumenta automáticamente cuando se introduce un elemento en un ArrayList.

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

Array vs. ArrayList

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

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

  • Un array estático puede ser unidimensional o multidimensional, pero un ArrayList sólo puede ser unidimensional.
  • Un Array es una estructura de datos primitiva disponible en Java. Pero un ArrayList es una parte de una API de estructura de colección en Java. Se construye sobre Arrays.
  • Puede declarar Arrays con tipos de datos primitivos. Los tipos de datos primitivos no se pueden utilizar en un ArrayList. Si desea utilizar un tipo de datos primitivo, tendrá que utilizar la clase envoltorio correspondiente al tipo de datos.

Tipos de ArrayLists en Java

Los ArrayLists pueden ser de cualquier tipo. Pero tendrá que pasar la clase envolvente correspondiente porque no puede pasar tipos de datos primitivos en un ArrayList.

Puede añadir tipos de datos simples como enteros o cadenas pasando por clases envolventes como Integer o String.

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

Veamos un ejemplo de utilización de una clase personalizada dentro de un 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("Nombre: " nombre " Edad: " edad);
 }
}

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();
 });
 }
}

Salida:
Nombre: Subha Edad: 25
Nombre: Dan Edad: 32

En el ejemplo de código anterior, se crea una ArrayList de tipo Usuario. A continuación aprenderá más sobre los métodos utilizados en el ejemplo.

Creación de un ArrayList en Java

Ya ha comprendido los conceptos básicos de un ArrayList en Java. Ahora vamos a echar un vistazo a la sintaxis de un ArrayList, y a continuación, también veremos cómo se puede utilizar en código Java.

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

El fragmento anterior muestra la sintaxis de la definición de una ArrayList. El Tipo define el tipo de la 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 necesitará importar java.util.ArrayList para utilizar ArrayList en sus programas. He aquí un ejemplo básico de un programa que declara un ArrayList:

import java.util.ArrayList;

class Main {
 public static void main(String[] args) {

 // Declarar una ArrayList
 ArrayList<String> rainbow = new ArrayList<>();

 System.out.println(rainbow); 
 }
}

Salida:
[]

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

Para trabajar con la ArrayList, existen múltiples métodos disponibles. Echemos un vistazo a algunos métodos.

El método add

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

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

El método add se utiliza para añadir un único elemento a un ArrayList. La sintaxis para add se muestra a continuación.

arrayList.add(int i, Elemento) 

Entendamos ahora la sintaxis. El primer parámetro i es un parámetro opcional que representa la posición del índice donde se encuentra el elemento que desea añadir. El segundo parámetro Elemento es el elemento que desea añadir. Veamos ahora un ejemplo.

rainbow.add("Violeta");
System.out.println(rainbow); 

Salida:
[Violeta]



rainbow.add(0, "Rojo");
System.out.println(rainbow); 

Salida:
[Rojo, Violeta]

El arco iris .add( "Violeta") añade un elemento al final de una ArrayList. Y el arco iris .add(0, "Rojo") añade el elemento Rojo a la posición índice 0 de la ArrayList. El método add( ) devolver true cuando un elemento se inserta con éxito.

El método get

El método get se utiliza para obtener el valor de una posición especificada de un ArrayList.

arrayList.get(int i);

La i que aparece 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("Violeta");
rainbow.add(0, "Rojo");

String color = rainbow.get(1);
System.out.println(color); 


Salida: 
Violeta

El código anterior devolverá Violeta de la ArrayList rainbow.

El método set

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

La sintaxis del método set es la siguiente,

arrayList.set(int i, Elemento);

Dónde i es la posición del índice, y Elemento es el valor del nuevo elemento.

rainbow.add("Violeta");
System.out.println(rainbow); 

Salida:
[Violeta]

rainbow.add(0, "Rojo");
System.out.println(rainbow);

Salida:
[Rojo, Violeta]

rainbow.set(1, "Violeta");
System.out.println(rainbow);

Salida:
[Rojo, Violeta]

En el ejemplo anterior, añadimos dos valores a una ArrayList llamada arco iris. En primer lugar, se añade el elemento Violeta y, a continuación, en la posición 0 de la ArrayList, añadimos el elemento Rojo. En este punto, la ArrayList completa tiene este aspecto, [Rojo, Violeta].

Ahora, el elemento en la posición 1 del índice se sustituye por el valor Violeta utilizando el método set. Después de reemplazar el valor, la ArrayList tendrá este aspecto, [Rojo, Violeta].

El método remove

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

arrayList.remove(Valor objeto);

// o

arrayList.remove(int i);

Pongamos un ejemplo para comprender mejor el método. Suponga que tiene un arrayList llamado arco iris con estos valores [Violeta, Rojo, Verde]. Ahora, si desea eliminar Rojo de la ArrayList, puede escribir rainbow.remove("Rojo");. Si llama a este método en la ArrayList arco iriseliminará de ella el elemento Rojo.

// rainbow = [Violeta, Rojo, Verde]

rainbow.remove("Rojo");
System.out.println(rainbow);

Salida:
[Violeta, Verde]

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

//arco iris = [Rojo, Verde]

rainbow.remove(0); // Elimina el elemento en la posición índice 0

System.out.println(rainbow);

Salida:
[Verde]

El método clear

Como su nombre indica, el método clear elimina todos los elementos de un ArrayList. La sintaxis es sencilla y no toma ningún parámetro.

arraylist.clear()

Veamos un ejemplo,

rainbow.clear(); 
System.out.println(rainbow); 

Salida:
[]

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

El método size

El método 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();

Aquí arrayList es el nombre del ArrayList. Vamos a entender el método de tamaño con la ayuda de un ejemplo.

ArrayList<String> rainbow = new ArrayList<>();
rainbow.add("Violeta");
rainbow.add("Rojo");
rainbow.add("Verde");

System.out.println(rainbow.size()); 


Salida:
3

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

Conclusión

En este artículo hemos visto qué es un ArrayList y en qué se diferencia de un Array. También vimos cómo se puede declarar y utilizar un ArrayList utilizando varios métodos disponibles para la clase ArrayList.

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

  • Subha Chanda
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder