[Java] mappa con parametro
Salve, potreste aiutarmi con questo esercizio:
Nella classe Utility, scrivere il codice del metodo
Map> utente2docs(List 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> utente2docs(List docs, String nomePermesso) {
Map> mappa = new HashMap>();
List list = new ArrayList();
for(Documento d : docs){
}
return mappa;
}
Ma poi mi blocco. Potreste gentilmente aiutarmi? Grazie mille in anticipo!
Nella classe Utility, scrivere il codice del metodo
Map
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
Map
List
for(Documento d : docs){
}
return mappa;
}
Ma poi mi blocco. Potreste gentilmente aiutarmi? Grazie mille in anticipo!
Risposte
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).
Scusami ancora,
Facendomi aiutare sono riuscito a fare questo:
static public Map> utente2docs(List docs, String nomePermesso) {
if(docs == null || nomePermesso == null){
return null;
}
Map> 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 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!
Facendomi aiutare sono riuscito a fare questo:
static public Map
if(docs == null || nomePermesso == null){
return null;
}
Map
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
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!
Sì, era esattamente quello.
Grazie mille!