Ciao a tutti!
dovrei scrivere un metodo che da una Map<String, List<Persona>> deve ritornare una List<Persona> (che contiene i valori della Map). Come posso fare?
Ciao a tutti!
dovrei scrivere un metodo che da una Map<String, List<Persona>> deve ritornare una List<Persona> (che contiene i valori della Map). Come posso fare?
Non ho capito bene. Spiegati meglio, così come hai scritto la List deve contenere degli oggetti di tipo Persona, non ho capito quel "che contiene i valori della Map" a cosa è riferito.Originariamente inviato da waimea
Ciao a tutti!
dovrei scrivere un metodo che da una Map<String, List<Persona>> deve ritornare una List<Persona> (che contiene i valori della Map). Come posso fare?
S-RDZN
J2EE programmer
Ho una mappa che ha come valore una lista di oggetti persona.
(Mappa)
roma->[mario, piero, gino]
milano->[maria, antonio]
ecc...
il metodo deve ritornare una lista di oggetti persone che ha la lista ti tutte le persone che sono nella mappa. Cioè i valori della mappa.
(Lista)
[mario, piero, gino, maria, antonio]
OK, ora già è più chiaro il problema....Ti basta semplicemente scorrerti la mappa per chiave, e per ogni chiave scorrerti la relativa lista di oggetti Persona, oggetti che poi andranno a popolare la tua lista finale. Una cosa del genere:Originariamente inviato da waimea
Ho una mappa che ha come valore una lista di oggetti persona.
(Mappa)
roma->[mario, piero, gino]
milano->[maria, antonio]
ecc...
il metodo deve ritornare una lista di oggetti persone che ha la lista ti tutte le persone che sono nella mappa. Cioè i valori della mappa.
(Lista)
[mario, piero, gino, maria, antonio]
codice:public List creaLista(Map<String, List<Persona>> mappa){ //io l'ho messi in un Vector, poi scegli tu quale "contenitore" utilizzare List<Persona> lista = new Vector<Persona>(); Set<String> chiavi = mappa.keySet(); //le chiavi della mappa Iterator<Persona> iter = chiavi.iterator(); while(iter.hasNext()){ //scorri le chiavi List<Persona> values = mappa.get(iter.next()); Iterator<Persona> iter2 = values.iterator(); while(iter2.hasNext()){ //scorri la lista di ogni chiave Persona p = iter2.next(); lista.add(p); } } return lista; }
S-RDZN
J2EE programmer
Semplicemente:
codice:public List<Persona> creaLista (Map<String, List<Persona>> mappa) { List<Persona> list = new ArrayList<Persona> (); for (String k : mappa.keySet()) list.addAll (mappa.get (k)); return list; }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Si decisamente meglio!!Originariamente inviato da andbin
Semplicemente:
codice:public List<Persona> creaLista (Map<String, List<Persona>> mappa) { List<Persona> list = new ArrayList<Persona> (); for (String k : mappa.keySet()) list.addAll (mappa.get (k)); return list; }![]()
S-RDZN
J2EE programmer
Grazie ragazzi!
non pensavo fosse così facile...
![]()