Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalLa spiegazione approfondita su come funzionano le liste è stata affrontata qualche lezione prima, per saperne di più LISTE In questa lezione si discute su come usare le liste che mette a disposizione direttamente il linguaggio senza necessità di doverle definire da capo ogni volta.
In Java, le collezioni permettono di gestire gruppi di dati in modo dinamico.
A differenza degli array, le collezioni:
Una delle strutture più utilizzate è la List.
Una List rappresenta una lista ordinata di elementi accessibili tramite indice.
In questo esempio implementiamo una la Coda utilizzando una lista.
int[] numeri = new int[3];
List<Integer> numeri = new ArrayList<>();
List è una interfaccia.
Non può essere creata direttamente:
List<Integer> lista = new List<>(); // -> ERRORE
List<Integer> lista = new ArrayList<>(); // -> OK
ArrayList è una classe concreta che implementa List.
Tra < > si specifica il tipo di dato contenuto nella lista.
Esempi:
List<Integer> numeri = new ArrayList<>();
List<String> nomi = new ArrayList<>();
List<Double> prezzi = new ArrayList<>();
Le List funzionano solo con oggetti, non con tipi primitivi.
| Tipo primitivo | Classe Wrapper |
|---|---|
| int | Integer |
| double | Double |
| char | Character |
| boolean | Boolean |
nomi.add("Marco");
nomi.add("Luca");
nomi.add("Anna");
System.out.println(nomi); // -> output: [Marco, Luca, Anna]
System.out.println(nomi.get(0)); // -> output: Marco
nomi.set(1, "Giulia");
nomi.remove(0);
o
nomi.remove("Anna");
nomi.size();
nomi.isEmpty();
nomi.contains("Marco");
for(int i = 0; i < nomi.size(); i++){
System.out.println(nomi.get(i));
}
for(String nome : nomi){
System.out.println(nome);
}
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);
for(Integer n : numeri){
System.out.println(n);
}
}
}
| Classe | Descrizione |
|---|---|
| ArrayList | veloce in lettura |
| LinkedList | veloce inserimento/rimozione |
| Vector | versione sincronizzata (raramente usata) |
Cos'è List in Java?
Quale classe implementa List?
Quale metodo aggiunge un elemento?
Come si legge un elemento?
Quale metodo restituisce la dimensione?
Creare una ArrayList di interi e stampare:
import java.util.*;
public class Main {
public static void main(String[] args){
List<Integer> numeri = new ArrayList<>();
numeri.add(5);
numeri.add(10);
numeri.add(15);
for(Integer n : numeri){
System.out.println(n);
}
System.out.println("Dimensione: " + numeri.size());
}
}Chiedere all’utente 5 nomi e salvarli in una ArrayList, poi 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();
}
}Inserire numeri finché l’utente scrive 0 e poi stampare il 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(Integer num : numeri){
if(num > max)
max = num;
}
System.out.println("Massimo: " + max);
input.close();
}
}