English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,我们将学习Java ArrayList类。我们将通过示例学习ArrayList的不同操作和方法。
ArrayList类是List接口的实现,允许我们创建可调整大小的数组。
在Java中,我们需要先声明数组的大小,然后才能使用它。一旦声明了数组的大小,就很难更改它。
要解决这个问题,我们可以使用ArrayList类。存在于java.util包中的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<>();
ArrayList proporciona varios métodos que nos permiten realizar operaciones en lista de arrays.
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]
与数组不同,我们不能直接初始化数组列表。 但是,我们可以使用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()方法用于将数组转换为数组列表。
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
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]
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().
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.
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
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.
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,
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.
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.
Métodos | Descripció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. |