Prendiamo un attimo questo esempio
codice:
public static int periodoPiuLungo(Persona p) {
   int max = 0;
   Set<TipoLinkHaLavorato> temp = p.getLinkHaLavorato();
   Iterator<TipoLinkHaLavorato> it = temp.iterator();
   while(it.hasNext()) {
      TipoLinkHaLavorato lnk = it.next();
      int durata = lnk.getAnnoFine() - lnk.getAnnoInizio() + 1;
      if (durata > max)
         max = durata;
   }
   return max;
}
Sarebbe stato un errore usare HashSet invece di Set? Se si, perché?

Sostituire le due righe
Set<TipoLinkHaLavorato> temp = p.getLinkHaLavorato();
Iterator<TipoLinkHaLavorato> it = temp.iterator();

con
Iterator<TipoLinkHaLavorato> it = p.getLinkHaLavorato().iterator();

creerebbe problemi?