Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalUn array è una sequenza di elementi dello stesso tipo con dimensione fissa.
// tipo[] nome = new tipo[dimensione];
int[] numeri = new int[5];
String[] nomi = new String[3];
Gli indici partono da 0.
numeri[0] = 10;
numeri[1] = 20;
numeri[2] = 30;
System.out.println(numeri[0]); // -> 10
int[] voti = {8, 7, 9, 6, 10};
String[] giorni = {"Lunedì", "Martedì", "Mercoledì"};
System.out.println(voti.length); // -> 5
// for classico (con indice)
for (int i = 0; i < voti.length; i++) {
System.out.println("Voto " + i + ": " + voti[i]);
}
// for-each (consigliato quando non serve l'indice)
for (int voto : voti) {
System.out.println(voto);
}
ArrayIndexOutOfBoundsExceptionint[] arr = new int[3];
arr[5] = 99; // -> ERRORE: ArrayIndexOutOfBoundsException
ArrayList è una lista dinamica: può crescere e ridursi automaticamente.
Per saperne di più su come funzionano le liste internamente → LISTE
List non può essere istanziata direttamente:
List<Integer> lista = new List<>(); // -> ERRORE
List<Integer> lista = new ArrayList<>(); // -> OK
ArrayList è la classe concreta che implementa List più usata.
Tra < > si specifica il tipo di dato. Le liste funzionano solo con oggetti, non tipi primitivi → si usano le classi wrapper:
| Tipo primitivo | Classe Wrapper |
|---|---|
int | Integer |
double | Double |
char | Character |
boolean | Boolean |
List<Integer> numeri = new ArrayList<>();
List<String> nomi = new ArrayList<>();
List<Double> prezzi = new ArrayList<>();
List<String> nomi = new ArrayList<>();
nomi.add("Marco"); // aggiunge in fondo
nomi.add(0, "Luigi"); // inserisce all'indice 0
nomi.get(1); // legge l'elemento all'indice 1
nomi.set(0, "Peach"); // modifica l'elemento all'indice 0
nomi.remove(0); // rimuove per indice
nomi.remove("Marco"); // rimuove per valore
nomi.size(); // numero di elementi
nomi.contains("Luigi"); // true/false
nomi.isEmpty(); // true se vuota
nomi.clear(); // svuota la lista
System.out.println(nomi); // stampa tutta la lista
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> numeri = new ArrayList<>();
numeri.add(10);
numeri.add(20);
numeri.add(30);
System.out.println(numeri); // -> [10, 20, 30]
System.out.println(numeri.size()); // -> 3
System.out.println(numeri.get(0)); // -> 10
}
}
for (int i = 0; i < nomi.size(); i++) {
System.out.println(i + ": " + nomi.get(i));
}
for (String nome : nomi) {
System.out.println(nome);
}
if (nomi.contains("Marco")) {
System.out.println("Trovato!");
}
| Caratteristica | Array | ArrayList |
|---|---|---|
| Dimensione | Fissa | Dinamica |
| Metodi | Solo .length | Molti metodi pronti |
| Tipi | Primitivi e oggetti | Solo oggetti (wrapper) |
| Quando usarlo | Dimensione nota e fissa | Dimensione variabile |
| Classe | Descrizione |
|---|---|
ArrayList | Veloce in lettura, uso generale |
LinkedList | Veloce in inserimento/rimozione |
Vector | Versione sincronizzata (raramente usata) |
Quale indice ha il primo elemento di un array?
Cos'è List in Java?
Quale metodo aggiunge un elemento a un ArrayList?
Come si ottiene la dimensione di un ArrayList?
Qual è la differenza principale tra array e ArrayList?
Crea un array di 5 voti interi e calcola la media.
public class Main {
public static void main(String[] args) {
int[] voti = {7, 8, 6, 9, 7};
int somma = 0;
for (int v : voti) {
somma += v;
}
System.out.println("Media: " + (double) somma / voti.length);
}
}Chiedere all’utente 5 nomi, salvarli in una ArrayList e stamparli.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
List<String> nomi = new ArrayList<>();
for (int i = 0; i < 5; i++) {
System.out.print("Inserisci nome: ");
nomi.add(input.nextLine());
}
for (String nome : nomi) {
System.out.println(nome);
}
input.close();
}
}Inserisci numeri finché l’utente scrive 0, poi stampa il valore massimo.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
List<Integer> numeri = new ArrayList<>();
int n;
do {
System.out.print("Inserisci numero (0 per terminare): ");
n = input.nextInt();
if (n != 0) numeri.add(n);
} while (n != 0);
int max = numeri.get(0);
for (int num : numeri) {
if (num > max) max = num;
}
System.out.println("Massimo: " + max);
input.close();
}
}