Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组转换为哈希表_Java_Arrays_Hashtable - Fatal编程技术网

Java 数组转换为哈希表

Java 数组转换为哈希表,java,arrays,hashtable,Java,Arrays,Hashtable,我想创建一个哈希表,从数组中提取每个字符串,并将其分配给唯一的整数值。我的数组从文件中读取并分配给数组,如下所示: public void readFile() throws Exception{ FileInputStream in = new FileInputStream("words.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine;

我想创建一个哈希表,从数组中提取每个字符串,并将其分配给唯一的整数值。我的数组从文件中读取并分配给数组,如下所示:

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.putcurrentWord,i+1; 知道我在哪里搞砸了吗

必须使用类的实例初始化wordsHashTable:

private Hashtable <String,Integer> wordsHashTable = new Hashtable<>();
但是,请注意Hashtable类已过时;您应该改用java.util.HashMap。

您必须使用类的实例初始化wordsHashTable:

private Hashtable <String,Integer> wordsHashTable = new Hashtable<>();

但是,请注意Hashtable类已过时;您应该改用java.util.HashMap。

您没有初始化“Hashtable”

private Hashtable <String,Integer> wordsHashTable = new Hashtable <String,Integer>();
我会修好的


但是,我建议您使用更现代的工具,如未初始化“哈希表”的

private Hashtable <String,Integer> wordsHashTable = new Hashtable <String,Integer>();
我会修好的


但是,我建议您使用更现代的方法,比如初始化哈希表。你忘了初始化它

 private Hashtable <String,Integer> wordsHashTable = new Hashtable<>();

初始化哈希表。你忘了初始化它

 private Hashtable <String,Integer> wordsHashTable = new Hashtable<>();

谢谢我不敢相信这是一个如此愚蠢的错误,谢谢你的提示,我们的讲师说我们应该在作业中使用哈希表,但我们会知道的,以备将来参考谢谢!我不敢相信这是一个如此愚蠢的错误,谢谢你的提示,我们的讲师说我们应该在作业中使用哈希表,但我们会知道,以备将来参考