GUIDE PER ASPIRANTI PROGRAMMATORI
Esercizio con Java Collections
Per sedimentare i concetti espressi in questa sezione dedicata alle collections in Java proviamo a fare un esercizio insieme! Pronto? Cominciamo! Esercizio guidato: gestione di una biblioteca con Java Collections Obiettivi: Creare una lista ArrayList di libri nella biblioteca. Gestire una lista LinkedList di utenti in attesa di un libro. Utilizzare un HashSet per memorizzare…
Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
Per sedimentare i concetti espressi in questa sezione dedicata alle collections in Java proviamo a fare un esercizio insieme! Pronto? Cominciamo!
Esercizio guidato: gestione di una biblioteca con Java Collections
Obiettivi:
- Creare una lista ArrayList di libri nella biblioteca.
- Gestire una lista LinkedList di utenti in attesa di un libro.
- Utilizzare un HashSet per memorizzare gli ID univoci dei libri già in prestito.
- Utilizzare un TreeSet per ordinare gli utenti in base al loro cognome.
- Creare una mappa HashMap per associare ogni libro al suo ID unico.
- Utilizzare una mappa TreeMap per tenere traccia del prestito dei libri agli utenti.
import java.util.*;
public class Biblioteca {
public static void main(String[] args) {
// Parte 1: Liste
List<String> libri = new ArrayList<>();
libri.add("Il Signore degli Anelli");
libri.add("1984");
libri.add("Il Grande Gatsby");
libri.add("Moby Dick");
libri.add("Don Chisciotte");
LinkedList<String> listaAttesa = new LinkedList<>();
listaAttesa.add("Mario Rossi");
listaAttesa.add("Luigi Bianchi");
listaAttesa.add("Anna Verdi");
// Parte 2: Set
Set<Integer> libriInPrestito = new HashSet<>();
libriInPrestito.add(1);
libriInPrestito.add(2);
libriInPrestito.add(3);
TreeSet<String> utentiOrdinati = new TreeSet<>();
utentiOrdinati.addAll(listaAttesa);
// Parte 3: Mappe
Map<Integer, String> catalogoLibri = new HashMap<>();
for (int i = 0; i < libri.size(); i++) {
catalogoLibri.put(i + 1, libri.get(i)); // Assegniamo ID ai libri partendo da 1
}
TreeMap<Integer, String> prestitiLibri = new TreeMap<>();
prestitiLibri.put(1, "Mario Rossi");
prestitiLibri.put(2, "Luigi Bianchi");
// Nota: Il libro con ID 3 è in prestito, ma non sappiamo a chi, quindi non lo aggiungiamo qui
// Domande:
// 1. Verifica se un libro è disponibile o in prestito.
int idLibro = 1; // Sostituire con l'ID del libro da controllare
if (libriInPrestito.contains(idLibro)) {
System.out.println("Il libro con ID " + idLibro + " è in prestito.");
} else {
System.out.println("Il libro con ID " + idLibro + " è disponibile.");
}
// 2. Assegna un libro dalla lista d'attesa se diventa disponibile.
if (!libriInPrestito.contains(idLibro) && !listaAttesa.isEmpty()) {
String utente = listaAttesa.poll(); // Rimuove il primo utente dalla lista d'attesa
prestitiLibri.put(idLibro, utente);
libriInPrestito.add(idLibro);
System.out.println("Il libro è stato assegnato a: " + utente);
}
// 3. Aggiungi un nuovo utente alla utentiOrdinati mantenendo l'ordine.
utentiOrdinati.add("Sofia Neri");
System.out.println("Utenti ordinati: " + utentiOrdinati);
// 4. Verifica a quale utente è stato prestato un particolare libro.
String utentePrestito = prestitiLibri.get(idLibro);
if (utentePrestito != null) {
System.out.println("Il libro con ID " + idLibro + " è stato prestato a: " + utentePrestito);
} else {
System.out.println("Il libro con ID " + idLibro + " non è attualmente in prestito.");
}
}
}
Questo codice mostra come potresti gestire una piccola biblioteca usando il framework delle collezioni di Java
Quando si esegue questo codice, le seguenti operazioni saranno simulate:
- Verifica della disponibilità di un libro.
- Assegnazione di un libro a un utente in attesa.
- Aggiunta di un nuovo utente e mantenimento dell’ordine alfabetico.
- Controllo dell’utente a cui è stato prestato un libro.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.