Java ArrayList

Java 集合框架Java Collection Framework

La clase ArrayList es un arreglo que se puede modificar dinámicamente; la diferencia con los arreglos normales es que no tiene un límite de tamaño fijo, podemos agregar o eliminar elementos.

ArrayList hereda de AbstractList e implementa la interfaz List.

La clase ArrayList se encuentra en el paquete java.util; antes de usarla es necesario importarla. El formato de sintaxis es el siguiente:

import java.util.ArrayList; // 引入 ArrayList 类

ArrayList<E> objectName =new ArrayList<>();  // 初始化
  • E: tipo de datos genérico, se utiliza para establecer el tipo de datos de objectName,solo puede ser un tipo de datos de referencia.。
  • objectName: nombre del objeto.

ArrayList es una cola de arreglo que proporciona funciones relacionadas como agregar, eliminar, modificar y recorrer.

Agregar elementos

La clase ArrayList proporciona muchos métodos útiles; para agregar elementos a un ArrayList se puede usar el método add():

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites);
    }
}

El resultado de ejecutar el ejemplo anterior es:

[Google, Ejemplo, Taobao, Weibo]

Acceder a elementos

Para acceder a los elementos de un ArrayList se puede usar el método get():

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.get(1));  // acceder al segundo elemento
    }
}

Nota: el índice de un arreglo comienza desde 0.

El resultado de ejecutar el ejemplo anterior es:

Ejemplo

Modificar elementos

Si se desea modificar los elementos de un ArrayList, se puede usar el método set(). El primer parámetro del método set(int index, E element) es el índice, que indica la posición del elemento a reemplazar; el segundo parámetro es el nuevo elemento, que indica el nuevo valor a establecer:

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        sites.set(2, "Wiki"); // el primer parámetro es la posición del índice, el segundo es el valor a modificar
        System.out.println(sites);
    }
}

El resultado de ejecutar el ejemplo anterior es:

[Google, Ejemplo, Wiki, Weibo]

Eliminar elementos

Si se desea eliminar elementos de un ArrayList, se puede usar el método remove():

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        sites.remove(3); // eliminar el cuarto elemento
        System.out.println(sites);
    }
}

El resultado de ejecutar el ejemplo anterior es:

[Google, Ejemplo, Taobao]

Calcular tamaño

Si se desea calcular el número de elementos en un ArrayList, se puede usar el método size():

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.size());
    }
}

El resultado de ejecutar el ejemplo anterior es:

4

Iterar sobre ArrayList

Podemos usar un bucle for para iterar sobre los elementos del ArrayList:

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        for (int i = 0; i < sites.size(); i++) {
            System.out.println(sites.get(i));
        }
    }
}

El resultado de ejecutar el ejemplo anterior es:

Google
Ejemplo
Taobao
Weibo

También se puede usar for-each para iterar sobre los elementos:

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("Ejemplo");
        sites.add("Taobao");
        sites.add("Weibo");
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

El resultado de ejecutar el ejemplo anterior es:

Google
Ejemplo
Taobao
Weibo

Otros tipos de referencia

Los elementos de un ArrayList son en realidad objetos; en los ejemplos anteriores, los elementos de la lista son todos de tipo cadena String.

Si queremos almacenar otros tipos, y <E> solo puede ser un tipo de datos de referencia, entonces necesitamos usar las clases envolventes de los tipos primitivos.

La tabla de las clases envolventes correspondientes a los tipos primitivos es la siguiente:

Tipo primitivoTipo de referencia
booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter

Además, BigInteger y BigDecimal se utilizan para operaciones de alta precisión. BigInteger admite enteros de precisión arbitraria, y también son tipos de referencia, pero no tienen tipos primitivos correspondientes.

ArrayList<Integer> li=new ArrayList<>();     // 存放整数元素
ArrayList<Character> li=new ArrayList<>();   // 存放字符元素

El siguiente ejemplo usa ArrayList para almacenar números (usando el tipo Integer):

Ejemplo

import java.util.ArrayList;

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(10);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(25);
        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

El resultado de ejecutar el ejemplo anterior es:

10
15
20
25

Ordenamiento de ArrayList

La clase Collections también es una clase muy útil, se encuentra en el paquete java.util, y su método sort() puede ordenar listas de caracteres o números.

El siguiente ejemplo ordena letras:

Ejemplo

import java.util.ArrayList;
import java.util.Collections;  // importar la clase Collections

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Taobao");
        sites.add("Wiki");
        sites.add("Ejemplo");
        sites.add("Weibo");
        sites.add("Google");
        Collections.sort(sites);  // ordenar letras
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

El resultado de ejecutar el ejemplo anterior es:

Google
Ejemplo
Taobao
Weibo
Wiki

El siguiente ejemplo ordena números:

Ejemplo

import java.util.ArrayList;
import java.util.Collections;  // importar la clase Collections

public class EjemploTest {
    public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(33);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(34);
        myNumbers.add(8);
        myNumbers.add(12);

        Collections.sort(myNumbers);  // ordenar números

        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

El resultado de ejecutar el ejemplo anterior es:

8
12
15
20
33
34

Métodos de Java ArrayList

La lista de métodos comunes de Java ArrayList es la siguiente:

Método Descripción
add() Inserta un elemento en el ArrayList en la posición especificada.
addAll() Agrega todos los elementos de una colección al ArrayList.
clear() Elimina todos los elementos del ArrayList.
clone() Copia un ArrayList.
contains() Determina si un elemento está en el ArrayList.
get() Obtiene el elemento del ArrayList mediante el índice.
indexOf() Devuelve el índice del elemento en el ArrayList.
removeAll() Elimina todos los elementos del ArrayList que existen en la colección especificada.
remove() Elimina un solo elemento del ArrayList.
size() Devuelve el número de elementos del ArrayList.
isEmpty() Determina si el ArrayList está vacío.
subList() Extrae una parte de los elementos del ArrayList.
set() Reemplaza el elemento en el índice especificado del ArrayList.
sort() Ordena los elementos del ArrayList.
toArray() Convierte el ArrayList en un arreglo.
toString() Convierte el ArrayList en una cadena.
ensureCapacity() Establece la capacidad especificada del ArrayList.
lastIndexOf() Devuelve la última posición del elemento especificado en el ArrayList.
retainAll() Conserva los elementos del ArrayList que también existen en la colección especificada.
containsAll() Comprueba si el ArrayList contiene todos los elementos de la colección especificada.
trimToSize() Ajusta la capacidad del ArrayList al número de elementos del arreglo.
removeRange() Elimina los elementos del ArrayList que existen entre los índices especificados.
replaceAll() Reemplaza cada elemento del arreglo con el resultado de la operación dada.
removeIf() Elimina todos los elementos del ArrayList que cumplen una condición específica.
forEach() Recorre cada elemento del ArrayList y ejecuta una operación específica.

Puedes consultar más métodos de API en:https://www.example.com/manual/jdk11api/java.base/java/util/ArrayList.html

Java 集合框架Java Collection Framework

Otras extensiones