Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Da Map a List

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    6

    Da Map a List

    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?

  2. #2

    Re: Da Map a List

    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?
    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.
    S-RDZN

    J2EE programmer

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    6
    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]

  4. #4
    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]
    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:

    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

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    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;
    }
    Si decisamente meglio!!
    S-RDZN

    J2EE programmer

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    6
    Grazie ragazzi!
    non pensavo fosse così facile...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.