簡體   English   中英

數組到HashTable

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM