Ciao,
provo a risponderti io:
a) Bisogna prendere dalla HashMap "pazienti" la lista di pazienti(Persona) del medico in input, poi prendiamo dalla HashMap "prescrizioni" la lista delle ricette di ogni paziente, dopodichè selezioniamo solo quelli con età inferiore a 20 anni e che hanno avuto più di 5 prescrizioni.
public LinkedList pazientiGiovani(Medico m){
LinkedList pazienti=(LinkedList)pazienti.get(m);//prende i pazienti del medico m
LinkedList<Persona> ris=new LinkedList();
Iterator it=pazienti.iterator();
while(it.hasNext()){
Persona p=(Persona)it.next();
LinkedList prescrizioni=prescrizioni.get(p);
if(p.getEta()<20 && prescrizioni.size()>5)
ris.add(p);}
return ris;}
b)Il ragionamento è analogo. "Scorriamo" la mappa "pazienti" e prendiamo solo quelli che hanno la lista dei pazienti vuota, da questi poi selezioniamo il più anziano:
public Medico medicoAnziano(){
Iterator it=pazienti.KeySet().iterator(); //così otteniamo l'iteratore sui medici(chiavi)
Medico ris;
while(it.hasNext()){
Medico m=(Medico)it.next();
if(pazienti.get(m).isEmpty()){
if(ris==null) ris=m; //così inseriamo il primo elemento per il confronto
if(ris.getEta()<m.getEta()) ris=m;
} //fine if
}//fine while
return ris;
}
Spero d'essere stato utile , però la prossima volta chiedi cose più specifiche, non la risoluzione di esercizi interi, cerca di concentrarti sui punti in cui hai problemi....
Ah nota che ho utilizzato dei cast forzati, è molto più veloce ma poco formale
ciao