English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Manejo de excepciones en Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

ArrayList de Java

在本教程中,我们将学习Java ArrayList类。我们将通过示例学习ArrayList的不同操作和方法。

ArrayList类是List接口的实现,允许我们创建可调整大小的数组。

Java 数组 与 ArrayList

在Java中,我们需要先声明数组的大小,然后才能使用它。一旦声明了数组的大小,就很难更改它。

要解决这个问题,我们可以使用ArrayList类。存在于java.util包中的ArrayList类允许我们创建可调整大小的数组。

与数组不同,当我们向数组列表添加或删除元素时,数组列表(ArrayList类的对象)可以自动调整其容量。因此,数组列表也称为动态数组。

创建ArrayList

这是我们在Java中创建数组列表的方法:

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

Aquí, Type indica el tipo de la lista de arrays. Por ejemplo,

//Crear lista de arrays de tipo entero
ArrayList<Integer> arrayList = new ArrayList<>();
//Crear lista de arrays de tipo cadena
ArrayList<String> arrayList = new ArrayList<>();

En el programa anterior, usamos Integer y String. Aquí, Integer es la clase envoltorio correspondiente al tipo int.

Las clases envoltorio son clases que envuelven tipos de datos primitivos. Por ejemplo, la clase Integer envuelve el tipo int, la clase Float envuelve el tipo float, etc.

Nota:No podemos crear listas de arrays de tipos de datos primitivos (como int, float, char, etc.). En su lugar, debemos usar sus clases envoltorio correspondientes.

Para las cadenas, String es una clase y no tiene clase envoltorio. Por lo tanto, lo usamos tal cual.

También podemos usar la interfaz List para crear ArrayList. Esto se debe a que la clase ArrayList implementa la interfaz List.

List<String> list = new ArrayList<>();

Métodos de ArrayList

ArrayList proporciona varios métodos que nos permiten realizar operaciones en lista de arrays.

Agregar elemento a ArrayList

1. Usar el método add()

Para agregar un solo elemento a una lista de arrays, usamos el método add(). Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elemento
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList: " + animals);
    }
}

Resultado de salida

ArrayList: [Perro, Gato, Caballo]

2. Usar el número de índice

También podemos usar índices para agregar elementos a una lista de arrays. Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elemento
        animals.add(0,"Perro");
        animals.add(1,"Gato");
        animals.add(2,"Caballo");
        System.out.println("ArrayList: " + animals);
    }
}

Resultado de salida

ArrayList: [Perro, Gato, Caballo]

3. Agregar elementos de una lista de arrays a otra lista de arrays

Para agregar todos los elementos de una lista de arrays a una nueva lista de arrays, utilice el método addAll(). Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> mammals = new ArrayList<>();
        mammals.add("Perro");
        mammals.add("Gato");
        mammals.add("Caballo");
        System.out.println("Mammales: ") + mammals);
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Crocodile");
        // Añadir todos los elementos de mammals a animals
        animals.addAll(mammals);
        System.out.println("Animales: ") + animals);
    }
}

Resultado de salida

Mamíferos: [Perro, Gato, Caballo]
Animales: [Cocodrilo, Perro, Gato, Caballo]

使用asList()初始化ArrayList

与数组不同,我们不能直接初始化数组列表。 但是,我们可以使用Arrays类的asList()方法来达到相同的效果。

为了使用asList()方法,我们必须先导入 java.util.Arrays 包。

例如,

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //Crear lista de matrices
        ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
        System.out.println("ArrayList: " + animals);
        //访问数组列表中的元素
        String element = animals.get(1;
        System.out.println("访问元素: " + element);
    }
}

Resultado de salida

ArrayList: [Cat, Cow, Dog]
访问元素: Cow

在上面的示例中,请注意以下表达式:

new ArrayList<>(Arrays.asList(("Cat", "Cow", "Dog"));

在这里,我们首先在3个元素的数组:"Cat","Cow",和"Dog"。然后,该asList()方法用于将数组转换为数组列表。

访问ArrayList的元素

1.使用get()方法

要随机访问数组列表的元素,我们使用get()方法。例如,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Perro");
        animals.add("Caballo");
        animals.add("Gato");
        System.out.println("ArrayList: " + animals);
        //从数组列表中获取元素
        String str = animals.get(0);
        System.out.print("索引0处的元素: " + str);
    }
}

Resultado de salida

ArrayList: [Dog, Horse, Cat]
索引0处的元素: Dog

2.使用 iterator() 方法

要按顺序访问数组列表的元素,我们使用iterator()方法。我们必须导入 java.util.Iterator 包才能使用此方法。例如,

import java.util.ArrayList;
import java.util.Iterator;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        animals.add("Zebra");
        //创建一个Iterator对象
        Iterator<String> iterate = animals.iterator();
        System.out.print("ArrayList: ");
        //使用Iterator的方法访问元素
        while(iterate.hasNext()){
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

Resultado de salida

ArrayList: Dog, Cat, Horse, Zebra,

Notas:

  • hasNext() - si hay un siguiente elemento en la lista de arrays, devuelve true.

  • next()  -  devolver el siguiente elemento de la lista de arrays

cambiar elemento de ArrayList

Para cambiar el elemento de la lista de arrays, podemos usar el método set(). Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList: " + animals);
        //cambiar el elemento de la lista de arrays
        animals.set(2, "Zebra");
        System.out.println("ArrayList modificado: "); + animals);
    }
}

Resultado de salida

ArrayList: [Perro, Gato, Caballo]
ArrayList modificado: [Dog, Cat, Zebra]

eliminar elemento de ArrayList

1.usar el método remove()

Para eliminar un elemento de la lista de arrays, podemos usar el método remove(). Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList inicial: "); + animals);
        //desde el índice2eliminar elemento
        String str = animals.remove(2;
        System.out.println("ArrayList final: "); + animals);
        System.out.println("eliminar elemento: "); + str);
    }
}

Resultado de salida

ArrayList inicial: [Dog, Cat, Horse]
ArrayList final: [Dog, Cat]
eliminar elemento: Horse

2.usar el método removeAll()

Para eliminar todos los elementos de la lista de arrays, usamos el método removeAll(). Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // Añadir elementos al ArrayList
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList inicial: "); + animals);
        // eliminar todos los elementos
        animals.removeAll(animals);
        System.out.println("ArrayList final: "); + animals);
    }
}

Resultado de salida

ArrayList inicial: [Dog, Cat, Horse]
ArrayList final: []

3.usar el método clear()

También podemos usar el método clear() para eliminar todos los elementos de la lista de arrays. Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList inicial: "); + animals);
        //eliminar todos los elementos
        animals.clear();
        System.out.println("ArrayList final: "); + animals);
    }
}

Resultado de salida

ArrayList inicial: [Dog, Cat, Horse]
ArrayList final: []

Nota:el método clear() es más eficiente que el método removeAll().

recorrer ArrayList

1.usar el bucle for

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //Crear lista de matrices
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add("Gato");
        animals.add("Perro");
        System.out.println("ArrayList: " + animals);
        //usar el bucle for
        System.out.println("Acceder a todos los elementos: ");
        for(int i = 0; i < animals.size(); i++) {
            System.out.print(animals.get(i));
            System.out.print(", ");
        }
    }
}

Resultado de salida

ArrayList: [Cow, Cat, Dog]
Acceder a todos los elementos:
Cow, Cat, Dog,

2.usar el bucle forEach

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // Crear lista de matrices
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add("Gato");
        animals.add("Perro");
        System.out.println("ArrayList: " + animals);
        //Usar el bucle forEach
        System.out.println("Acceder a todos los elementos: ");
        for(String animal : animals) {
            System.out.print(animal);
            System.out.print(", ");
        }
    }
}

Resultado de salida

ArrayList: [Cow, Cat, Dog]
Acceder a todos los elementos:
Cow, Cat, Dog,

En los dos ejemplos, hemos accedido a cada elemento de la lista de matrices usando un bucle.

Obtener la longitud de ArrayList

Para obtener la longitud de la lista de matrices, usamos el método size(). Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // Agregar elementos a arrayList
        animals.add("Perro");
        animals.add("Caballo");
        animals.add("Gato");
        System.out.println("ArrayList: " + animals);
        //Obtener el tamaño de arrayList
        System.out.println("tamaño de arrayList: ", + animals.size());
    }
}

Resultado de salida

ArrayList: [Dog, Horse, Cat]
tamaño de arrayList: 3

Ordenar los elementos de ArrayList

Para ordenar los elementos de la lista de matrices, usamos el método sort() de la clase Collections. Para usarlo, debemos importar el paquete java.util.Collections.

Por defecto, el ordenamiento se realiza en orden alfabético o numérico ascendente. Por ejemplo,

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Caballo");
        animals.add("Zebra");
        animals.add("Perro");
        animals.add("Gato");
        System.out.println("ArrayList no ordenado: ", + animals);
        //Ordenar la lista de matrices
        Collections.sort(animals);
        System.out.println("ArrayList ordenado: ", + animals);
    }
}

Resultado de salida

ArrayList no ordenado: [Horse, Zebra, Dog, Cat]
ArrayList ordenado: [Cat, Dog, Horse, Zebra]

Para obtener más información sobre el ordenamiento de la lista de matrices, visite Java ArrayList sort.

Conversión de ArrayList de Java a array

En Java, podemos usar el método toArray() para convertir la lista de matrices en un array. Por ejemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Agregar elementos a la lista de matrices
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList: " + animals);
        //Crear un nuevo array de tipo String
        String[] arr = new String[animals.size()];
        //Convertir ArrayList a array
        animals.toArray(arr);
        System.out.print("Array: ");
        for(String item: arr) {
            System.out.print(item+", ");
        }
    }
}

Resultado de salida

ArrayList: [Perro, Gato, Caballo]
Array: Perro, Gato, Caballo,

Conversión de Array Java a ArrayList

También podemos convertir un array en una lista de arrays. Para eso, podemos usar el método asList() de la clase Arrays.

Para usar asList(), debemos importar el paquete java.util.Arrays. Por ejemplo,

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //Crear un array de tipo String
        String[] arr = {"Perro", "Gato", "Caballo"};
        System.out.print("Array: ");
        //Imprimir array
        for(String str: arr) {
            System.out.print(str);
            System.out.print(" ");
        }
        //Crear ArrayList desde array
        ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr));
        System.out.println("\nArrayList: " + animals);
    }
}

Resultado de salida

Array: Perro, Gato, Caballo
ArrayList: [Perro, Gato, Caballo]

En el programa anterior, primero creamos un array de tipo String arr.

Luego, utilizamos el método asList() para convertir el array en una lista de arrays.

Conversión de ArrayList Java a cadena

Para convertir una lista de arrays en una cadena, se puede usar el método toString(). Por ejemplo

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Añadir elementos al ArrayList
        animals.add("Perro");
        animals.add("Gato");
        animals.add("Caballo");
        System.out.println("ArrayList: " + animals);
        //Convertir ArrayList a cadena
        Cadena str = animals.toString();
        System.out.println("Cadena: " + str);
    }
}

Resultado de salida

ArrayList: [Perro, Gato, Caballo]
Cadena: [Perro, Gato, Caballo]

Nota: La función toString() convierte toda la lista de arreglos en una única cadena de texto.

Otros métodos de ArrayList

MétodosDescripción del contenido
clone()

Crear una nueva lista de arreglos con los mismos elementos, tamaño y capacidad.

contains()

Buscar el elemento especificado en la lista de arreglos y devolver un valor booleano.

ensureCapacity()

Especificar el número total de elementos que puede contener la lista de arreglos.

isEmpty()

Comprobar si la lista de arreglos está vacía.

indexOf()

Buscar el elemento especificado en la lista de arreglos y devolver la posición del elemento.

trimToSize()

Reducir la capacidad de la lista de arreglos al tamaño actual.