Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    60

    HashMap valori mescolati

    Salve a tutti..
    Ho un hashMap con chiave una stringa e valore un vettore.
    Devo semplicemente estrarre i dati..
    Per estrarli riesco ma il problema è che i valori si mescolano e non capisco il perchè.. cioè ogni chiave ha come valore tutti valori della hashmap..

    Posto del codice per essere più chiaro.

    Questo metodo inserisce in una Hashmap che ho chiamato map i dati da un foglio xml dove ogni foglio ha un solo titolo e più referenze... NB: references è un vettore in cui memorizzo tutte le referenze in modo di avere nella hashmap (Stringa title, Vettore references)

    codice:
    public static void neededInformations(Document doc) {
        		NodeList titles = doc.getElementsByTagName("title");
        		Node title = titles.item(0);
        		Node title_value_node = title.getFirstChild();
        		String title_value = title_value_node.getNodeValue();
        		//System.out.println(title_value);
        		NodeList references_NodeList = doc.getElementsByTagName("references");
        		int count_references = references_NodeList.getLength();
        		for (int count=0; count<count_references;count++){
        			Node reference = references_NodeList.item(count);
        			Node reference_value_node = reference.getFirstChild();
        			String reference_value = reference_value_node.getNodeValue();
        			//System.out.println(reference_value);
        			references.add(count, reference_value);
        		}
        		map.put(title_value, references);
        		
        }
    Il secondo metodo serve ad estrarli mettendoli in un database locale.. tutto funziona, il problema è che i valori si mescolano..

    codice:
    public void StoreData (HashMap map){
    		try {
    			Statement stmt1 = (Statement) getCon().createStatement();
    			stmt1.executeUpdate(table);
    			PreparedStatement stmt = getCon().prepareStatement("INSERT INTO Papers VALUES (?,?)");
    			// tirare fuori i dati  dall'hashmap e memorizzarli nel database!!
    			Iterator it = SearchReferences.getMap().entrySet().iterator();
    			while (it.hasNext()){
    				Map.Entry<String, Vector> pairs = (Map.Entry<String, Vector>) it.next();
    				//Vector values = pairs.getValue();
    				//int sizeValues = values.size();
    				//String ref="";
    				//for (int count=0 ; count<sizeValues; count++){
    					//ref = ref + " " + values.get(count);
    				//}
    				System.out.println(pairs.getKey() + " = " + pairs.getValue());
    				stmt.setString(1,pairs.getKey());
    				stmt.setString (2,SearchReferences.getMap().get(pairs.getKey()).toString());    //getValue()
    				stmt.executeUpdate();
    			}
    Gentilissimi, rigrazio già per l'aiuto!!

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: HashMap valori mescolati

    Originariamente inviato da parzi
    Il secondo metodo serve ad estrarli mettendoli in un database locale.. tutto funziona, il problema è che i valori si mescolano..
    Per "si mescolano" intendi "non li leggo nello stesso ordine con cui sono stati inseriti?". Se è così è normale, riguardati il funzionamento di una mappa hash
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    60
    No non intendo quello.
    Faccio un esempio.
    Ho alcuni documenti, ognuno ha un titolo e delle referenze.
    Inserisco nella hashMap il title e il vettore di referenze per quella chiave.
    Faccio questo processo più volte.
    Il problema è che quando estraggo i dati ogni title ha come vettore referenze un vettore contenente i valori di tutte le referenze di ogni title.
    Non è strano??? consigli?

    Grazie mille...

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Sei sicuro di inserire nella hashmap vettori "references" diversi per ogni chiave? Nel codice non vedo dove il vettore sia inizializzato, per cui se ogni volta che inserisci qualcosa lo fai nello stesso vettore...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    60
    Hai ragione!!!!!
    Non ci avevo minimamente pensato!!
    Grazie mille!Desktop

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Desktop
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    60
    Avevo creato una class variable invece di crearne una locale nel metodo!!!
    E allora tutti i dati si salvavano in quel vettore!!!
    Che stupido!

    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.