PDA

View Full Version : [Java] Mappe


Bestseller
19-03-2012, 19:38
Buonasera a tutti.
Devo scrivere come esercizio un programma in Java che gestisca una libreria. Oltre a memorizzare i dati relativi ai vari libri, si chiede di scrivere un programma in grado di:
- chiedere all'utente il titolo del libro e stampare a video la lista di tutti i libri con quel titolo presenti nella libreria
- chiedere all'utente l'autore del libro e stampare a video la lista di tutti i libri scritti da quell'autore presenti nella libreria
Inizialmente ho pensato di usare due istanze di HashMap. Una che aveva come chiavi i vari titoli dei libri e per valori gli oggetti della classe Libro, e una che aveva come chiavi i vari autori e come valori gli oggetti della classe Libro. Il problema č che, cosė facendo, si viola la regola secondo cui: "ad ogni chiave presente nella mappa č associato un unico valore". Ma, dall'altro lato, ho bisogno di scegliere quelle chiavi per utilizzare agevolmente il metodo get(nome_autore) e ottendere i libri di quell'autore.
Come posso fare per risolvere il problema? :confused:
Grazie. :)

PGI-Bis
19-03-2012, 21:54
I libri dovrebbero avere un UID, credo che sia l'ISBN o una roba cosė quindi č possibile che questa deva essere la tua chiave univoca con cui immagazzinare i libri nella mappa.

Se č cosė allora per le ricerche devi fare una scansione lineare dei valori immagazzinati nella mappa. Semplicemente:

for(Map.Entry<String, Libro> e : map.entrySet()) {
Libro libro = e.getValue();
...vedi se libro.autore o libro.titolo coincidono con quello che ti serve
}