PDA

Visualizza la versione completa : [JAVA] Da HashMap a TreeMap


tagibo
11-03-2006, 00:06
Ho una HashMap composta da coppie (frequenza, parola), cio la frequenza in cui parola appare in un file .txt gi riversato nella HashMap.

Ora io dovrei formare delle nuove coppie (x,y) da stampare su file, dove x parole compaiono esattamente y volte.
Devo scrivere un metodo

Iterator count(Iterator it)che riceve un iteratore sui valori della Map h e rende un iteratore sull entrySet() di una nuova Map, una TreeMap, che contiene le coppie (x, y).

Non conosco per niente le TreeMap, potreste darmi qualche suggerimento su come implementare questo metodo??
Grazie a tutti.
:ciauz:

tagibo
15-03-2006, 14:02
Allora, io ho scritto questo codice:

public static Map m=new HashMap(500);
......
public static Iterator count(Iterator itr) {
Map tree=new TreeMap();
while (itr.hasNext()) {
Object k = itr.next();
if (!tree.containsValue(m.get(k))) tree.put(new Integer(1),m.get(k));
else {
Integer val = (Integer) tree.get(k);
tree.put(new Integer(val.intValue() + 1),m.get(k));
}
}
Set s=tree.entrySet();
Iterator i = s.iterator();
return i;
}
Il porblema che mi d una ClassCastException sull'istruzione in neretto. :dh:
Non so proprio cosa fare, da un po' che ci sto ragionando ma non vengo mai a capo di questo problema. :bh:
Qualcuno mi d una mano?
:ciauz:

perzem
15-03-2006, 14:37
da object passi a string e da string a integer, nn so se funziona l'ho fatta al volo

int val=Integer.parseInt((tree.get(k)).toString());

tagibo
15-03-2006, 14:56
java.lang.ClassCastException: java.lang.Integer
at java.lang.String.compareTo(Unknown Source)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.getEntry(Unknown Source)
at java.util.TreeMap.get(Unknown Source)
at metodi.count(metodi.java:148)
at metodi.index(metodi.java:88)
at metodi.main(metodi.java:48)
Exception in thread "main" Niente da fare.... :cry: :cry: :cry: :cry: :cry: :cry:

perzem
15-03-2006, 16:02
ma ti dice (Unknown Source) prova a fare un debug e a vedere cosa ti restituisce la map.get(k); magari una cavolata ma li sembra che nn ti ritorna niente...

perzem
16-03-2006, 10:05
nel codice che mi hai mandato manca la definizione di alcune variabili e il main... Mandami tutto completo

perzem
16-03-2006, 12:54
da dove viene questa classe?

ScanDirectory(path, formato);

e questa var?

Input.readLine();

mandami anche un file per provare il programma, altrimenti non ci posso fare niente

Loading