
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.