Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    5

    Rimepimento hash con 2 stringhe

    Ciao a tutti!
    Ho un problema riguardo il popolamento di un hash. Dovrei associare ad ogni coppia di citta' x,y i tempi di percorrenza delle strade che vanno da x a y. Ad esempio se da Parigi a Lione ci sono
    una strada con tempo di percorrenza 25 e una con tempo di percorrenza 32 , dovrei avere nell'hash [["Parigi","Lione]] = [25, 32] . Da un metodo leggo le due stringhe e ne faccio lo split, ma a questo punto dovrei aggiungere ( tramite il metodo put della struttura hash ) il vettore risultante? Ci sono altri modi meno costosi e/o più furbi? :master:
    Grazie a tutti in anticipo!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Rimepimento hash con 2 stringhe

    Originariamente inviato da manuelx
    Ciao a tutti!
    Ho un problema riguardo il popolamento di un hash. Dovrei associare ad ogni coppia di citta' x,y i tempi di percorrenza delle strade che vanno da x a y. Ad esempio se da Parigi a Lione ci sono
    una strada con tempo di percorrenza 25 e una con tempo di percorrenza 32 , dovrei avere nell'hash [["Parigi","Lione]] = [25, 32] . Da un metodo leggo le due stringhe e ne faccio lo split, ma a questo punto dovrei aggiungere ( tramite il metodo put della struttura hash ) il vettore risultante? Ci sono altri modi meno costosi e/o più furbi?
    Definisci un classe che rappresenta due città, da usare come chiave e come valore nell'hash metti un array o una collezione (dipende da cosa ci devi poi fare) di valori (sono interi o floating-point?).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    5
    Non mi conviene definire una classe città perchè i nomi delle città mi vengono passate come stringhe che salvo in un ArrayList<String>

    x.aggiungi_citta("Parigi");
    x.aggiungi_citta("Lione");

    poi ci sarà un altro metodo, aggiungi strada che coinvolgerà l'hash. La funzione sarà del tipo

    x.aggiungi_strada("Parigi","Lione",40)
    x.aggiungi_strada("Parigi","Lione",30)

    Il problema è prendere queste due città, abbinarle tra di loro e associargli i tempi ( due int )
    40 e 30 .

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Guarda ... non so cosa devi fare di preciso, con cosa parti ecc... Ti posso dire cosa farei io che possa essere abbastanza "logico":

    codice:
    class EstremiPercorso
    {
        private String citta1;
        private String citta2;
    
        public EstremiPercorso (String citta1, String citta2)
        {
            this.citta1 = citta1;
            this.citta2 = citta2;
        }
    
        // ... metodi getter, poi equals() e hashCode() ...
    }
    
    
    class MappaPercorsi
    {
        private HashMap<EstremiPercorso,ArrayList<Integer>> map;
    
        public MappaPercorsi ()
        {
            map = new HashMap<EstremiPercorso,ArrayList<Integer>> ();
        }
    
        public void add (EstremiPercorso ep, int tempo)
        {
            ArrayList<Integer> listaTempi = map.get (ep);
    
            if (listaTempi == null)
            {
                listaTempi = new ArrayList<Integer> ();
                map.put (ep, listaTempi);
            }
    
            listaTempi.add (tempo);
        }
    
        // ... altri metodi ...
    }
    Poi semplicemente:

    codice:
    MappaPercorsi mp = new MappaPercorsi ();
    
    EstremiPercorso ep = new EstremiPercorso ("Parigi", "Lione");
    mp.add (ep, 40);
    mp.add (ep, 30);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.