English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, impareremo la classe ArrayList di Java. Studieremo le diverse operazioni e metodi di ArrayList con l'aiuto di esempi.
La classe ArrayList è un'implementazione dell'interfaccia List, che ci permette di creare array di dimensione variabile.
In Java, dobbiamo dichiarare la dimensione dell'array prima di poterlo utilizzare. Una volta dichiarata la dimensione dell'array, è difficile modificarla.
Per risolvere questo problema, possiamo utilizzare la classe ArrayList. La classe ArrayList esistente nel pacchetto java.util ci permette di creare array di dimensione variabile.
A differenza degli array, quando aggiungiamo o rimuoviamo elementi da un arraylist (un oggetto della classe ArrayList), l'arraylist può automaticamente adattare la sua capacità. Pertanto, l'arraylist è anche noto come array dinamico.
Questi sono i metodi che possiamo utilizzare per creare arraylist in Java:
ArrayList<Type> arrayList = new ArrayList<>();
In questo caso, Type indica il tipo dell'arraylist. Ad esempio,
//Creazione di una ArrayList di tipo intero ArrayList<Integer> arrayList = new ArrayList<>(); //Creazione di una ArrayList di tipo stringa ArrayList<String> arrayList = new ArrayList<>();
Nel programma sopra, abbiamo utilizzato Integer e String. In questo caso, Integer è la classe wrapper corrispondente al tipo int.
Le classi wrapper sono classi che avvolgono i tipi di dati primitivi. Ad esempio, la classe Integer avvolge il tipo int, la classe Float avvolge il tipo Float, ecc.
Attenzione:Non possiamo creare array di tipi di dati primitivi (come int, float, char ecc.) Invece, dobbiamo utilizzare le loro classi wrapper corrispondenti.
Per le stringhe, String è una classe, non ha un wrapper. Pertanto, utilizziamo String come è.
Possiamo anche creare ArrayList utilizzando l'interfaccia List. Questo perché ArrayList implements List.
List<String> list = new ArrayList<>();
ArrayList fornisce vari metodi che ci permettono di eseguire operazioni su liste di array.
1. Utilizzare il metodo add()
Per aggiungere un singolo elemento a una lista di array, utilizziamo il metodo add(). Ad esempio:
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // Aggiungi elemento animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); } }
Risultato di output
ArrayList: [Dog, Cat, Horse]
2. Utilizzare il numero di indice
Possiamo anche utilizzare l'indice per aggiungere elementi a una lista di array. Ad esempio:
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); // Aggiungi elemento animals.add(0, "Cane"); animals.add(1, "Gatto"); animals.add(2, "Cavallo"); System.out.println("ArrayList: " + animals); } }
Risultato di output
ArrayList: [Dog, Cat, Horse]
3. Aggiungere gli elementi di una lista di array a un'altra lista di array
Per aggiungere tutti gli elementi di una lista di array a una nuova lista di array, utilizzare il metodo addAll(). Ad esempio:
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> mammals = new ArrayList<>(); mammals.add("Cane"); mammals.add("Gatto"); mammals.add("Cavallo"); System.out.println("Mammiferi: " + mammals); ArrayList<String> animals = new ArrayList<>(); animals.add("Crocodillo"); // Aggiungi tutti gli elementi di mammals a animals animals.addAll(mammals); System.out.println("Animali: " + animals); } }
Risultato di output
Mammiferi: [Cane, Gatto, Cavallo] Animali: [Crocodillo, Cane, Gatto, Cavallo]
Diversamente dagli array, non possiamo inizializzare direttamente una lista di array. Tuttavia, possiamo utilizzare il metodo asList() della classe Arrays per ottenere lo stesso effetto.
Per utilizzare il metodo asList(), dobbiamo prima importare il pacchetto java.util.Arrays.
Ad esempio:
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { //Creazione della lista di array ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog")); System.out.println("ArrayList: " + animals); //Accesso all'elemento dell'array list String element = animals.get(1); System.out.println("Accesso all'elemento: " + element); } }
Risultato di output
ArrayList: [Cat, Cow, Dog] Accesso all'elemento: Cow
Nell'esempio sopra, notate l'espressione seguente:
new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
In questo esempio, iniziamo con un array di 3 elementi: "Cat", "Cow", e "Dog". Poi, il metodo asList() viene utilizzato per convertire l'array in una array list.
1. Utilizzo del metodo get()
Per accedere in modo casuale agli elementi dell'array list, utilizziamo il metodo get(). Ad esempio:
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("ArrayList: " + animals); //Recupero dell'elemento dall'array list String str = animals.get(0); System.out.print("Elemento all'indice 0: " + str); } }
Risultato di output
ArrayList: [Dog, Horse, Cat] Elemento all'indice 0: Dog
2. Utilizzo del metodo iterator()
Per accedere agli elementi dell'array list in ordine, utilizziamo il metodo iterator(). Dobbiamo importare il pacchetto java.util.Iterator per utilizzare questo metodo. Ad esempio:
import java.util.ArrayList; import java.util.Iterator; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); animals.add("Zebra"); //Creazione di un oggetto Iterator Iterator<String> iterate = animals.iterator(); System.out.print("ArrayList: "); //Metodi per accedere agli elementi dell'Iterator while(iterate.hasNext()){ System.out.print(iterate.next()); System.out.print(", "); } } }
Risultato di output
ArrayList: Dog, Cat, Horse, Zebra,
Avvertenze:
hasNext() - Restituisce true se c'è un elemento successivo nell'array list.
next() - Restituisce l'elemento successivo dell'array list
Per modificare l'elemento di un array list, possiamo utilizzare il metodo set(). Ad esempio:
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //Modifica l'elemento dell'array list animals.set(2, "Zebra"); System.out.println("ArrayList modificato: " + animals); } }
Risultato di output
ArrayList: [Dog, Cat, Horse] ArrayList modificato: [Dog, Cat, Zebra]
1. Utilizzo del metodo remove()
Per eliminare un elemento dalla lista di array, possiamo utilizzare il metodo remove(). Ad esempio,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList iniziale: " + animals); //Eliminazione dell'elemento dall'indice 2 String str = animals.remove(2); System.out.println("ArrayList finale: " + animals); System.out.println("Eliminazione dell'elemento: " + str); } }
Risultato di output
ArrayList iniziale: [Dog, Cat, Horse] ArrayList finale: [Dog, Cat] Eliminazione dell'elemento: Horse
2. Utilizzo del metodo removeAll()
Per eliminare tutti gli elementi dalla lista di array, utilizziamo il metodo removeAll(). Ad esempio,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //Aggiunta di elementi nell'ArrayList animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList iniziale: " + animals); //Eliminazione di tutti gli elementi animals.removeAll(animals); System.out.println("ArrayList finale: " + animals); } }
Risultato di output
ArrayList iniziale: [Dog, Cat, Horse] ArrayList finale: []
3. Utilizzo del metodo clear()
Possiamo anche utilizzare il metodo clear() per eliminare tutti gli elementi dalla lista di array. Ad esempio,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList iniziale: " + animals); //Eliminazione di tutti gli elementi animals.clear(); System.out.println("ArrayList finale: " + animals); } }
Risultato di output
ArrayList iniziale: [Dog, Cat, Horse] ArrayList finale: []
Attenzione:Il metodo clear() è più efficiente rispetto al metodo removeAll().
1. Utilizzo del ciclo for
import java.util.ArrayList; class Main { public static void main(String[] args) { //Creazione della lista di array ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("ArrayList: " + animals); //Utilizzo del ciclo for System.out.println("Visita tutti gli elementi: "); for(int i = 0; i < animals.size(); i++) { System.out.print(animals.get(i)); System.out.print(", "); } } }
Risultato di output
ArrayList: [Cow, Cat, Dog] 访问所有元素: Cow, Cat, Dog,
2. Utilizzo del ciclo forEach
import java.util.ArrayList; class Main { public static void main(String[] args) { //Creazione della lista di array ArrayList<String> animals = new ArrayList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("ArrayList: " + animals); //Utilizzo del ciclo forEach System.out.println("Visita tutti gli elementi: "); per(String animal : animals) { System.out.print(animal); System.out.print(", "); } } }
Risultato di output
ArrayList: [Cow, Cat, Dog] 访问所有元素: Cow, Cat, Dog,
In both examples, we have accessed each element of the array list using a loop.
To get the length of an array list, we use the size() method. For example,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在arrayList中添加元素 animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("ArrayList: " + animals); //获取arrayList的大小 System.out.println("arrayList的大小: " + animals.size()); } }
Risultato di output
ArrayList: [Dog, Horse, Cat] arrayList的大小: 3
To sort the elements of an array list, we use the sort() method of the Collections class. To use it, we must first import the java.util.Collections package.
By default, sorting is performed in ascending order of letters or numbers. For example,
import java.util.ArrayList; import java.util.Collections; class Main { public static void main(String[] args){ ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Horse"); animals.add("Zebra"); animals.add("Dog"); animals.add("Cat"); System.out.println("Unsorted ArrayList: " + animals); //对数组列表进行排序 Collections.sort(animals); System.out.println("Sorted ArrayList: " + animals); } }
Risultato di output
Unsorted ArrayList: [Horse, Zebra, Dog, Cat] Sorted ArrayList: [Cat, Dog, Horse, Zebra]
For more information on sorting array lists, please visit Java ArrayList sort.
In Java, we can use the toArray() method to convert an array list to an array. For example,
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在数组列表中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //创建一个新的String类型数组 String[] arr = new String[animals.size()]; //将ArrayList转换成数组 animals.toArray(arr); System.out.print("Array: "); for(String item:arr) { System.out.print(item+", "); } } }
Risultato di output
ArrayList: [Dog, Cat, Horse] Array: Dog, Cat, Horse,
我们还可以将数组转换为数组列表。为此,我们可以使用Arrays类的asList()方法。
要使用asList(),我们必须先导入java.util.Arrays包。例如,
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { //创建一个字符串类型的数组 String[] arr = {"Dog", "Cat", "Horse"}; System.out.print("Array: "); //打印数组 for(String str: arr) { System.out.print(str); System.out.print(" "); } //从数组创建ArrayList ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr)); System.out.println("\nArrayList: " + animals); } }
Risultato di output
Array: Dog, Cat, Horse ArrayList: [Dog, Cat, Horse]
在上面的程序中,我们首先创建了String类型的数组arr。
然后,我们使用asList()方法将数组转换为数组列表。
要将数组列表转换为字符串,可以使用toString()方法。例如
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> animals = new ArrayList<>(); //在ArrayList中添加元素 animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayList: " + animals); //Convertire ArrayList in stringa String str = animals.toString(); System.out.println("String: " + str); } }
Risultato di output
ArrayList: [Dog, Cat, Horse] String: [Dog, Cat, Horse]
Attenzione: toString() converte l'intera lista di array in un singolo String.
Metodo | Descrizione del contenuto |
---|---|
clone() | Crea una nuova lista di array con gli stessi elementi, dimensione e capacità. |
contains() | Cerca l'elemento specificato nella lista di array e restituisci un valore booleano. |
ensureCapacity() | Specifica il numero totale di elementi che la lista di array può contenere. |
isEmpty() | Controlla se la lista di array è vuota. |
indexOf() | Cerca l'elemento specificato nella lista di array e restituisci l'indice dell'elemento. |
trimToSize() | Ridurre la capacità della lista di array all'attuale dimensione. |