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

教程基础Java

Java Controllo dei Flussi

Java Array

Java Orientato a Oggetti (I)

Java Orientato a Oggetti (II)

Java Orientato a Oggetti (III)

Gestione delle eccezioni Java

Java List

Java Queue (Coda)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

ArrayList Java

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.

Array Java e ArrayList

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.

Creazione di ArrayList

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

Metodi di ArrayList

ArrayList fornisce vari metodi che ci permettono di eseguire operazioni su liste di array.

Aggiungere elementi a ArrayList

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]

Inizializzazione ArrayList con asList()

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.

Accesso agli elementi ArrayList

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

Modifica dell'elemento ArrayList

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]

Eliminazione di elementi ArrayList

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().

Esecuzione della ArrayList

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.

获取ArrayList的长度

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

对ArrayList的元素进行排序

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.

Java ArrayList转换为数组

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,

Java Array 转换为 ArrayList

我们还可以将数组转换为数组列表。为此,我们可以使用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()方法将数组转换为数组列表。

Java ArrayList 转换为 字符串

要将数组列表转换为字符串,可以使用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.

Altri metodi ArrayList

MetodoDescrizione 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.