[英]Array into HashTable
我想创建一个哈希表,它将从我的数组中获取每个String并将其分配给唯一的整数值。 我的数组从文件中读取并分配给数组,如下所示:
public void readFile() throws Exception{
FileInputStream in = new FileInputStream("words.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
wordsList = new String[getNumberOfLines()];
for (int j = 0; j < wordsList.length; j++){
wordsList[j] = br.readLine();
}
in.close();
}
使用这个数组我写了一个方法来创建这样的哈希表:
String currentWord;
private Hashtable <String,Integer> wordsHashTable;
LinesReader lr = new LinesReader();
int i;
String[] listOfWords;
public boolean insertValues() throws Exception{
for (i=0; i<lr.getNumberOfLines();i++){
lr.readFile();
listOfWords = lr.returnsWordList();
currentWord = listOfWords[i];
wordsHashTable.put(currentWord, i+1);
}
return wordsHashTable.isEmpty(); //testing purposes only
}
它在行处抛出NullPointer异常:wordsHashTable.put(currentWord,i + 1); 我弄乱了什么想法?
您必须使用类的实例初始化wordsHashTable
:
private Hashtable <String,Integer> wordsHashTable = new Hashtable<>();
但是 ,请注意Hashtable
类已过时; 你应该使用java.util.HashMap
。
初始化哈希表。 你忘了初始化它。
private Hashtable <String,Integer> wordsHashTable = new Hashtable<>();
你没有初始化`Hashtable'。
private Hashtable <String,Integer> wordsHashTable = new Hashtable <String,Integer>();
会解决它。
但是,我建议你转向更现代的东西,比如HashMap
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.