Non riesco a capire come impostare un metodo, mi aiutate?
Ho un oggetto asta che mantiene un arrayList di id di offerte che la riguardano.
L'oggetto offerta mantiene un arrayList di id (in questo caso string) di utenti che hanno inserito un'offerta. Questi id sono univoci, quindi ogni offerta ha un id univoco e non possono esistere due offerte con lo stesso id. L'oggetto utente mantiene un arrayList di id di offerte che ha inserito.
Io devo estrarre (da un db di MapDB) tutte le aste per le quali un utente ha fatto almeno un'offerta.
Ho pensato di creare un arrayList di integer in cui metto tutte le offerte che ha fatto un utente, così:
ArrayList<Integer> idOffUtente= users.get(utenteRiferimento).getOfferte();
Ora però dovrei confrontare ad uno ad uno tutti gli id contenuti in idOffUtente con tutti quelli presenti nell'arrayList di id di offerte contenuto nel db delle aste. Cioè ogni asta ha un ArrayList<Integer> chiamato Offerte.
Ho pensato ad unac osad el genere
Il primo for mi serve a scorrere tutto il db delle aste. Il secondo a scorrere tutto l'arrayList degli id con le offerte dell'utente.codice:for (Asta key : aste.values()) { for (int i = 0; i < idOffUtente.size(); i++) { if (condizione che verifica) { } }
Non so cosa mettere nell'if per fare il confronto... ho visto che esiste:
idOffUtente.get(i).intValue()
Non so se intValue() fa quello che penso io, cioè mi restituisce l'intero in posizione i, ma se è così, come lo faccio il confronto con tutti gli int presenti in key.getOfferte() (che mi restituisce l'arrayList di tutte le offerte inserite per quella specifica asta)?
Grazie!
Aggiungo che quando c'è una corrispondenza, quello che deve succedere è che aggiungo l'asta trovata all'arrayList di Aste che deve restituire il metodo. In pratica io ho bisogno di sapere quali sono gli oggetti per i quali l'utente ha effettuato almeno un'offerta, quindi quali sono tutte le aste a cui l'utente ha partecipato come offerente.