Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

[Java] mappa con parametro

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!

Re: [Java] mappa con parametro

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).

Re: [Java] mappa con parametro

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!

Re: [Java] mappa con parametro

26/05/2016, 15:07

Sì, era esattamente quello.

Re: [Java] mappa con parametro

26/05/2016, 15:24

Grazie mille!
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.