Laboratorio di Programmazione - A.A. 2004/05

Esercitazione 7

Parte 1.

Realizzare una classe pubblica Libro, in un package libro, che reppresenti le seguenti informazioni di su un libro:

Si equipaggi la classe con uno o più costuttori opportuni e con metodi per recuperare le informazioni in essa memorizzate. Si ridefiniscano equals() e clone() ereditate da Object in modo che facciano il test di uguaglianza profonda e la copia profonda rispettivamente. Si ridefinisca inoltre hashCode() in modo che sia coerente con il test di uguaglianza.

Parte 2.

Realizzare una classe pubblica CatalogoLibri che gestisca un catalogo di libri. Un oggetto CatalogoLibri è caratterizzato da un nome (una stringa) e l'insieme dei libri in esso contenuto, e supporta le seguenti funzionalità:

Suggerimento: si utilizzi una classe che implementa l'interfaccia Set per memorizzare l'insieme dei libri. Si testi la classe realizzata con un opprotuno cliente.

Parte 3.

Realizzare una pubblica classe che implementi l'interfaccia Set usando una tavola hash.Si realizzino le "bulk operation" lanciando l'eccezione UnsupportedOperationException. Realizzare inoltre il relativo iteratore che implementi l'interfaccia Iterator. In quest'ultimo si realizzi il metodo opzionale remove lanciando l'eccezione UnsupportedOperationException. Riscrivere la classe realizzata nella Parte 1 utilizzando come Set l'implementazione appena realizzata.