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!!