Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: HashMap

  1. #1

    HashMap

    salve a tutti, non ricordo come manipolare le HashMap :
    ho una mappa contenente riferimenti ad oggetti e con un metodo devo visualizzare tutti gli elementi contenuti all'interno, non importa l'ordinamento.
    Come posso fare ? devo usare Iterator ? hasNext ?
    non ricordo...
    grazie in anticipo

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

    Re: HashMap

    Originariamente inviato da cequeta
    salve a tutti, non ricordo come manipolare le HashMap :
    ho una mappa contenente riferimenti ad oggetti e con un metodo devo visualizzare tutti gli elementi contenuti all'interno, non importa l'ordinamento.
    Come posso fare ? devo usare Iterator ? hasNext ?
    Puoi prendere il set delle chiavi (keySet() ) e ottenere un Iterator oppure prendere il set delle entry (entrySet() ) e ottenere un Iterator.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Allora ho fatto così :


    Codice PHP:
            Map m = new java.util.HashMap ();
            
    Iterator it m.keySet().iterator();
            
    Prodotto p = new Prodotto();
            while(
    it.hasNext()) {
                
    = (Prodottoit.next();
                
    System.out.println (p.getCodice());
                
    System.out.println (p.getDescrizione());
                
    System.out.println (p.getPrezzo());
            } 
    nessun errore sintattico ma non entra while, quindi non mi stampa niente...
    dove sbaglio ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da cequeta
    ma non entra while
    Ma io dal codice postato vedo solo che hai istanziato un nuovo HashMap .... quindi è certamente ... vuoto! E non vedo alcuna put .... se ne hai fatti, che magari non hai postato qui, ok.

    E comunque:
    a) Il new Prodotto() che hai scritto, così come è non serve.
    b) Con keySet() puoi iterare sulle chiavi. Se vuoi i valori, data la chiave prendi il valore dalla map.
    c) Se puoi/vuoi usare i "generics", sarebbe molto meglio, verrebbe tutto molto più chiaro e pulito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    hai ragione, in realtà avevo scritto questo, ma ho lo stesso effetto di prima :

    Codice PHP:
            Iterator it mappaProdotti.keySet().iterator();
            
    Prodotto p = new Prodotto();
            while(
    it.hasNext()) {
                
    = (Prodottoit.next();
                
    System.out.println (p.getCodice());
                
    System.out.println (p.getDescrizione());
                
    System.out.println (p.getPrezzo());
            } 
    non posso usare i <generics>, dovrei cambiare troppe cose.

    a) Il new Prodotto() che hai scritto, così come è non serve.
    b) Con keySet() puoi iterare sulle chiavi. Se vuoi i valori, data la chiave prendi il valore dalla map.
    non è chiaro, come potrei fare ?

  6. #6
    Se non ti entra nel while vuol dire che la mappa è vuota, hai controllato che sia corretto dove fai il .put(,) degli oggetti dentro la mappa?

  7. #7
    il caricamento avviene attraverso un DAO Mock, una classe che mi simula il caricamento:

    codice:
    Catalogo catalogo = DAOMock.carica()
    nel Mock c'è questo :

    codice:
    Catalogo catalogo = new Catalogo();
            Prodotto 1 = new Prodotto("aaa", "aaaaaa", 1111);
            Prodotto 2 = new Prodotto("bbb", "bbbbbb", 2222);
            Prodotto 3 = new Prodotto("ccc", "cccccc", 3333);
            catalogo.putProdotto(aaa,aaaaaa );
            catalogo.putProdotto(bbb,bbbbbb );
    e fin qui credo di non aver sbagliato niente, infatti riesco a visualizzare il numero di prodotti :

    codice:
    System.out.println(catalogo.mappaProdotti.size());
    quindi come potrebbe risultare vuota ?
    cosa sbaglio ?

  8. #8
    Con questi spezzoni di codice è difficile capire bene quello che fai.
    Prova a postare le classi intere.

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da cequeta
    codice:
    Catalogo catalogo = new Catalogo();
            Prodotto 1 = new Prodotto("aaa", "aaaaaa", 1111);
            Prodotto 2 = new Prodotto("bbb", "bbbbbb", 2222);
            Prodotto 3 = new Prodotto("ccc", "cccccc", 3333);
            catalogo.putProdotto(aaa,aaaaaa );
            catalogo.putProdotto(bbb,bbbbbb );
    Solo con questo codice non si capisce nulla ... e tra l'altro è pure sbagliato come sintassi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    eh lo so, ho cercato di prendere soltanto il codice in questione per il caricamento...comunque sono sicuro che il caricamento della mappa avviene correttamente, infatti come ho detto riesco a visualizzare il numero di Prodotti all'interno.
    Ora dimenticando tutto quello che ho scritto...
    Come fareste voi, avendo una mappa con riferimenti ad oggetti, a visualizzare tutto il contenuto?

    intanto vi ringrazio per la vostra collaborazione
    Gli uomini sono diventati strumenti dei loro strumenti.

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.