我有以下方法返回哈希表:
public static Hashtable<Integer, Hashtable<Integer, List<String>>> BuildIndex(List<Integer> configuration, String filename) throws FileNotFoundException {
Hashtable<Integer, Hashtable<Integer, List<String>>> final_nGram = new Hashtable<Integer, Hashtable<Integer, List<String>>>();
Hashtable<Integer, List<String>> tmp_nGram = new Hashtable<Integer, List<String>>();
Scanner inFile = new Scanner(new File(filename));
while (inFile.hasNext()) {
String unparsed = inFile.nextLine().intern();
String[] parsed = unparsed.split("\n");//change line
sentences.add(parsed[0]);
}
inFile.close();
int line = 0;
for (String s : sentences) {
//for test
//System.out.println(s);
for (int x = configuration.get(0); x <= configuration.get(1); x++) {
tmp_nGram.put(x, ngrams(x, s));
}
final_nGram.put(line, tmp_nGram);
line++;
}
return final_nGram;
}
ngrams(x,s)返回List String&gt;。
当我运行它时,我只得到循环的第一句作为final_nGram Hashtable中的键。但我应该得到所有句子。
实际上我要做的是将散列表tmp_nGram保存为另一个散列表final_nGram的值。
有人可以解释我出了什么问题吗?