我似乎無法找到寫入類的數組的正確方法。在這種形式下編譯時不會引發錯誤,但是當我嘗試使用數組/類時會收到錯誤。類的陣列是在一個名爲Hashtable類(我需要寫我自己的工作分配),我用下面的代碼測試它:類的數組(Java)
theHashTable.insert("aa", "ab");
這裏是Hashtable類:
編輯:正如Aniket指出的那樣,fileNames沒有被初始化。我糾正了下面的錯誤,但收到了同樣的錯誤。在Values
類
private class HashTable {
private class Value {
ArrayList<String> fileNames;
String word;
Value() {
fileNames = new ArrayList<String>();
}
}
private int currentSize = 101;
private Value[] items;
private HashTable() {
items = new Value[currentSize];
for (int i = 0; i < currentSize; i++) items[i] = new Value();
}
private int hash(String in) {
int out = 0;
for (int i = 0; i < in.length(); i++) out += 37*out+in.charAt(i);
out %= currentSize;
if (out < 0) out += currentSize;
return out;
}
public void insert(String inW, String inF) {
int index = hash(inW);
index = 0;
if (items[index].word.length() == 0) {
items[index].word = inW;
items[index].fileNames.add(inF);
}
else if (items[index].word.compareTo(inW) == 0) items[index].fileNames.add(inF);
else System.out.println("Collision");
}
}
請張貼堆棧跟蹤,或者你看到更好的答案確切的錯誤。 –
異常線程 「main」 顯示java.lang.NullPointerException 在DirHashSearch $ HashTable.insert(DirHashSearch.java:165) 在DirHashSearch.tokenSearch(DirHashSearch.java:54) 在DirHashSearch.main(DirHashSearch.java:20) – asimes