[英]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.