Sono riuscita a farlo cambiando strategia, così:
codice:
ArrayList<Integer> idAste=new ArrayList<>();
for (Offerta key : offerte.values()) {
if (key.getOfferente().equals(utenteRiferimento)) {
idAste.add(key.getIdAsta());
}
}
for (Asta key : aste.values()) {
for (int i = 0; i < idAste.size(); i++) {
if (key.getId()==idAste.get(i).intValue() ) {
listaOggettiOsservati.add(key);
}
}
}
Il problema però è che devo escludere i duplicati. Poiché un utente può fare più di un'offerta per la stessa asta, come faccio a dirgli qui (o altrove) escludi tutti i duplicati?
if (key.getId()==idAste.get(i).intValue() )
Così come ho fatto io ottengo la lista di tutte le aste per le quali un utente ha mai effettuato almeno una offerta, ma se ha fatto più offerte per la stessa asta in listaOggettiOsservati ci finiscono anche i duplicati. In pratica dovrei escludere da idAste i valori duplicati.
Edit: ho risolto con un altro ciclo for che mi toglie i duplicati. Sono sicura che c'è un modo più elegante per farlo, ma non ho tempo di trovarlo...sono proprio agli sgoccioli