CONTATTACI

Guide per aspiranti programmatori

developer con sguardo di sfida che armeggia con due pc mettendosi alla prova con java
Lezione 35 / 47

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:

  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.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.