Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [JAVA ] Hashtable

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    141

    [JAVA ] Hashtable

    Ciao a tutti,
    ho questo problema, ho creato un hashtable così:
    codice:
    public Hashtable<String,String[]> htc = new Hashtable<String,String[]>();
    preparo un array String [13] e lo valorizzo diversamente per 3 chiavi diverse e lo carico,
    quando vado a fare in un ciclo il htc.get(key) con key valorizzato con le tre chiavi mi ritorna sempre l'array del primo elemento .
    Qualcuno sa spiegarmi come mai?

    Grazie

  2. #2
    Forse ti converebbe postare il codice di inizializzazione dell'array di String.

    Secondo me i passi che fai sono del tipo:
    [list=1][*] New String[13][*] Riempio con primi 13 elementi[*] Memorizzo in hash con valore x[*] Riempio con secondi 13 elementi[*] Memorizzo in hash con valore y[*] Riempio con terzi 13 elementi[*] Memorizzo in hash con valore z[/list=1]

    Se è così, essendo tutti puntatori, modifichi sempre la stessa area di memoria puntata dalle 3 chiavi hash.

    Prova ad utilizzare o 3 array diversi o a fare il new dopo ogni put in Hashtable

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    141
    Grazie eumene,
    i passi sono proprio quelli che dici tu infatti:
    codice:
               colonne = new String[13];
               comocolonne = new String[13];
               ResultSetMetaData RSMD = dati.getMetaData();
               numcol=RSMD.getColumnCount();
                for (int i=1; i<= numcol; i++) {
                    key=RSMD.getColumnName(i);
                    colonne[0]=String.valueOf(i);
                    colonne[1]= "9999";
                    colonne[2]= key;
                    colonne[3]= "";
                    colonne[4]= "";
                    colonne[5]= "";
                    colonne[6]= "";
                    colonne[7]= "";
                    colonne[8]= "";
                    colonne[9]= "";
                    colonne[10]= "";
                    colonne[11]= "";
                    colonne[12]= key;
                    htc.put(key,colonne);
    ma come faccio alla fine di htc.put metto un'altro:
    colonne = new String[13];
    Così mi da errore per doppia definizione , no?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    141
    ok ho fatto come dicevi tu e funziona... Grazie

  5. #5

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.