Esercizio con Java Collections | Aulab

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…

Lezione 35 / 47
Enza Neri
Immagine di copertina

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:

  1. Creare una lista ArrayList di libri nella biblioteca.
  2. Gestire una lista LinkedList di utenti in attesa di un libro.
  3. Utilizzare un HashSet per memorizzare gli ID univoci dei libri già in prestito.
  4. Utilizzare un TreeSet per ordinare gli utenti in base al loro cognome.
  5. Creare una mappa HashMap per associare ogni libro al suo ID unico.
  6. 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:

  1. Verifica della disponibilità di un libro.
  2. Assegnazione di un libro a un utente in attesa.
  3. Aggiunta di un nuovo utente e mantenimento dell’ordine alfabetico.
  4. Controllo dell’utente a cui è stato prestato un libro.

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626