[Java] mappa con parametro

Messaggioda flavio<Integer> » 25/05/2016, 23:44

Salve, potreste aiutarmi con questo esercizio:

Nella classe Utility, scrivere il codice del metodo

Map<Utente, List<Documento>> utente2docs(List<Documento> docs, String nomePermesso)

Il metodo prende come parametri una collezione di documenti e il nome di un permesso e restituisce una mappa che ha per chiave un utente e per valore la lista dei documenti (tra quelli della collezione passata come parametro) per i quali l’utente corrispondente alla chiave ha il permesso specificato come secondo parametro.

Praticamente mi viene data una classe Utility in cui bisogna scrivere questo metodo e inoltre ho una classe Utente e una classe Documento.Nella classe Utility che mi viene data c'è solo questo metodo.

Io ho provato a fare cosi:

static public Map<Utente, List<Documento>> utente2docs(List<Documento> docs, String nomePermesso) {
Map<Utente,List<Documento>> mappa = new HashMap<Utente, List<Documento>>();
List<Documento> list = new ArrayList<Documento>();
for(Documento d : docs){

}


return mappa;
}

Ma poi mi blocco. Potreste gentilmente aiutarmi? Grazie mille in anticipo!
flavio<Integer>
Junior Member
Junior Member
 
Messaggio: 19 di 168
Iscritto il: 22/04/2016, 10:49

Re: [Java] mappa con parametro

Messaggioda apatriarca » 26/05/2016, 11:35

Non è chiaro il legame tra nomePermesso e l'utente.. Ma in ogni caso il codice è in pratica identico a quello dell'altra volta sui robot. Crei la mappa e poi fai un ciclo sui documenti. Per ogni documenti ottieni gli utenti (o il singolo utente se ce n'è solo uno) e inserisci quel documento nelle corrispondenti liste della mappa (creando la lista se è il primo documento dell'utente).
apatriarca
Moderatore
Moderatore
 
Messaggio: 4203 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Java] mappa con parametro

Messaggioda flavio<Integer> » 26/05/2016, 14:50

Scusami ancora,

Facendomi aiutare sono riuscito a fare questo:

static public Map<Utente, List<Documento>> utente2docs(List<Documento> docs, String nomePermesso) {
if(docs == null || nomePermesso == null){
return null;
}

Map<Utente,List<Documento>> mappa = new HashMap<>();
for(Documento doc : docs){
PermessoAccesso permessiUtente = doc.getPermessoAccesso(nomePermesso);
if(permessiUtente != null){
for(Utente utente : permessiUtente.getUtenti()){
if(mappa.containsKey(utente)){
mappa.get(utente).add(doc);
}else{
List<Documento> listDocumenti = new ArrayList<>();
listDocumenti.add(doc);
mappa.put(utente,listDocumenti);
}
}
}
}
return mappa;
}

Mi rendo conto che non è chiaro al massimo perchè non hai il codice intero, ma è questo che dicevi?

Grazie mille in anticipo!
flavio<Integer>
Junior Member
Junior Member
 
Messaggio: 20 di 168
Iscritto il: 22/04/2016, 10:49

Re: [Java] mappa con parametro

Messaggioda apatriarca » 26/05/2016, 15:07

Sì, era esattamente quello.
apatriarca
Moderatore
Moderatore
 
Messaggio: 4208 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [Java] mappa con parametro

Messaggioda flavio<Integer> » 26/05/2016, 15:24

Grazie mille!
flavio<Integer>
Junior Member
Junior Member
 
Messaggio: 21 di 168
Iscritto il: 22/04/2016, 10:49


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite