[Java]Dal diagramma classi a Java

Devo realizzare la seguente consegna:
DATO UN INSIEME DI LIBRI PRENOTATI, VERIFICARE CHE TUTTI I CLIENTI CHE LI ABBIANO PRENOTATI RISIEDANO ENLLA STESSA CITTA.
Questo è il codice sorgente, non ho capito solo alcuni punti;
public static boolean clientiStessaCitta(Set
boolean result = true;
Iterator
String c = null;
if (i.hasNext()) {
Libro x = i.next();
c = x.getPrenotazioni().iterator().next().getCitta(); //a cosa serve il .next()?
}
while (i.hasNext()) {
Libro x = i.next();
Iterator
while (j.hasNext()) {
Cliente y = j.next();
result = result && y.getCitta().equals(c);
}
}
return result;
}
}
se qualcuno mi potesse fornire il funzionamento del secondo ciclo in linguaggio formale capirei tutto meglio
Il mio problema è che non ho capito come gestire le associazioni con l'iteratore, purtroppo ho solo questo esercizio svolto.
Grazie per l'aiuto.
Risposte
"m4551":
c = x.getPrenotazioni().iterator().next().getCitta(); //a cosa serve il .next()?
Iteratorj = x.getPrenotazioni().iterator(); //perchè qui c'è il .iterator()
Per rispondere alla prima domanda dovresti guardare l'implementazione della classe Libro, che avrà un metodo getPrenotazioni che restituisce un set (di Clienti) di cui chiedi l'iterator e ne prendi il primo elemento con next().
Idem per la seconda