【发布时间】:2011-11-01 18:05:39
【问题描述】:
我有这门课:
public class docInfo {
private int freq;
private HashMap<String, Double> m = new HashMap<String, Double>();
}
private Map<String, docInfo> m;
我想遍历所有 docInfo 的 Double 值并更改它:
docInfo documento;
for (Map.Entry<String, docInfo> entry : m.entrySet()) {
word = entry.getKey();
docs = entry.getValue(); // docs map
for (Map.Entry<String, Double> entry2 : docs.getM().entrySet()){
score = entry2.getValue();
temp = score;
double log = Math.log10(docs.getFreq());
double tfw = log+cons;
docs.changeScoreTo(entry2.getKey(), tfw);
//entry2.setValue(tfw);
}
}
它正在工作,问题是运行时间太长,我认为我的代码不适合这项工作。任何帮助将不胜感激,
【问题讨论】:
-
每个
Map中有多少项?这段代码被调用了多少次? -
docInfo hashMap 总大小为 27k,大部分主 hashmap 没有超过 20 个对象