Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854

    Problemino con Tabella Hash

    Ciao ragazzi,
    ho un piccolo problemino con la creazione di una Tabella Hash.
    Vi spiego....ho due file:
    - 1° chiamato clienti nel formato:
    id;nome;cognome;
    id;nome;cognome;
    ... ... ...
    - 2° chiamato movimenti nel formato:
    id;tipo_operazione; valuta id;tipo_operazione; valuta ... ...

    Adesso devo riuscire, dopo aver fatto la lettura (e qui non ci sono problemi), ad inserire i clienti in una tabella hash ed implementare un metodo per la stampa di tutte le chiavi contenute nella tabella.

    Chi sa come fare? Non so proprio com implementare la tabella hash....


    Grazie...

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

    Re: Problemino con Tabella Hash

    Originariamente inviato da Felino
    Non so proprio com implementare la tabella hash....
    java.util.HashMap
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Ti ringrazio...
    Ma conviene usare HashMap o HashTable?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Felino
    Ma conviene usare HashMap o HashTable?
    Dal punto di vista delle concettuale, fanno la stessa identica cosa.
    La principale differenza è che Hashtable è la "vecchia" collection mantenuta per compatibilità ed è "synchronized" mentre HashMap è la nuova collection introdotta con Java 1.2 e non è "synchronized".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Ragazzi....ho quasi risolto...adesso ho solo un piccolo problemino.
    Dovrei stampare gli id presenti nella tabella hash...e invece mi stampa o gli oggetti associati oppure gli indirizzi di memoria!
    Ecco il codice:
    //
    int id=0;
    String nome, cognome;
    boolean trovato=true;
    Hashtable table = new Hashtable();
    try{
    BufferedReader text=new BufferedReader(new FileReader("clienti.txt"));
    StringTokenizer cl=new StringTokenizer(text.readLine(), "; ");
    while(cl!=null){
    id=Integer.parseInt(cl.nextToken());
    nome=cl.nextToken();
    cognome=cl.nextToken();
    clienti c= new clienti(id, nome, cognome);
    table.put (id,c);
    c.stampa();
    cl=new StringTokenizer(text.readLine(), "; ");
    }
    } catch(FileNotFoundException e) //Caso in cui il file specificato non esista
    {trovato=false;}
    catch(IOException e)
    {System.out.println("\nErrore lettura del file!");System.exit(1); }
    catch (NullPointerException e){}
    System.out.println(table.Values());
    if(trovato=false)
    System.out.println("\nFile 'clienti.txt' non trovato!");
    else
    System.out.println("\nFile 'clienti.txt' caricato correttamente!\n");
    //

    Che ne dite?
    Grazie!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Felino
    Ragazzi....ho quasi risolto...adesso ho solo un piccolo problemino.
    Dovrei stampare gli id presenti nella tabella hash...e invece mi stampa o gli oggetti associati oppure gli indirizzi di memoria!
    Che ne dite?
    Innanzitutto, se non ci sono questioni di multi-threading, di usare HashMap. E magari (se li conosci) i generics.

    Poi comunque se vuoi iterare sulle chiavi della map, usa keySet() per ottenere un set delle chiavi e poi itera su quest'ultimo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Purtroppo devo usare l'HashTable....a detta del professore!

    ho utilizzato il seguente codice:

    for (Enumeration e = table.elements() ; e.hasMoreElements() {
    System.out.println(e.nextElement());
    }

    ma mi stampa solo il nome o il cognome e non l'id, cioe' la chiave della tabella!!!

    Come devo fare?

    L'inserimento dei dati nella tabella con:
    table.put (id,cognome);
    ove table e' un tipo HashTable e' correto?

    Grazie....

  8. #8
    stai utilizzando il metodo che restituisce gli elementi e non le chiavi dell'hashtable.
    devi fare una cosa del genere:

    codice:
    java.util.Hashtable h = new java.util.Hashtable();
    // caricamento dell'hashtable
    java.util.Enumeration enu = h.keys();
    while(enu.hasMoreElements()){
    	System.out.println("Chiave:" + enu.nextElement());
    }

  9. #9
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    s.geminiani sei un grande!!!

    Funziona perfettamente...solo una piccola curiosità...le chiavi vengono stampate tutte...ma solo nell'ordine inverso...dall'ultima alla prima...
    Chiave:10
    Chiave:9
    Chiave:8
    Chiave:7
    Chiave:6
    Chiave:5
    Chiave:4
    Chiave:3
    Chiave:2
    Chiave:1
    Per avere l'ordine invero?
    Forse non e' possibile, se non erro ho letto da qualche parte che la tabella hash non ha un ordine nell'inserimento, vero?

    Grazie!

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Felino
    Purtroppo devo usare l'HashTable....a detta del professore!
    Sia HashMap che Hashtable hanno il metodo keySet() che fornisce un Set delle chiavi (su cui puoi iterare). Solo Hashtable ha il metodo keys() che fornisce una Enumeration delle chiavi.
    Quindi vedi tu cosa usare.
    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.