Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Chiarimento algoritmo metodo

    Il seguente metodo ritorna una mappa che associa ad un mese una lista con glistudenti nati in quel mese :

    Esempio:

    – se un'aula contiene un insieme con i seguenti studenti:

    {<"00","gen">, <"11","gen">, <"54","ott">,<"24","mar">,<"32", "mar">}

    – il metodo meseDiNascita2studenti() deve restituire una mappa con le seguenti coppie :

    chiave --> valore :

    "gen" --> {<"00", "gen">,<"11", "gen">}

    "ott" --> {<"54", "ott">}

    "mar" --> {<"32", "mar">,<"24", "mar">}

    codice:
    public Map<String, List<Studente1>> meseDiNascita2studenti() {
    
            List<Studente1> tmp;
    
            Map<String, List<Studente1>> mappa;
    
            mappa = new HashMap<String, List<Studente1>>();
    
            for(Studente1 studente : this.studenti){
    
                tmp = mappa.get(studente.getMeseDiNascita());
    
                if (tmp==null)
    
                    tmp = new ArrayList<Studente1>();
    
                tmp.add(studente);
    
                mappa.put(studente.getMeseDiNascita(), tmp);
    
            }
    
            return mappa;
    
        }
    Qualcuno riesce gentilmente a spiegarmi i passi dell'algoritmo?
    Non mi è chiara soprattuto l'assegnazione " tmp = mappa.get(studente.getMeseDiNascita()); ";

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da aleRomatre Visualizza il messaggio
    Non mi è chiara soprattuto l'assegnazione " tmp = mappa.get(studente.getMeseDiNascita()); ";
    Cerca nella mappa il List<Studente1> per quel mese di nascita. Nella mappa potrebbe esserci già oppure non ancora. Per questo viene fatto il test per null. Se è null, vuol dire che non c'è ancora una lista di studenti per quel mese e quindi a) va creata e b) inserita nella mappa.


    P.S. il put sulla mappa sarebbe preferibile farlo solo quando tmp è null, ovvero quando la lista viene creata per quel mese. Altrimenti molti put diventano superflui/inutili.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok ora mi è chiaro. Grazie Ancora!

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.