[英]creating an arraylist of linkedlist
我想創建一個鏈式哈希表。 它需要是一個鏈表列表,指令說我應該這樣做:
ArrayList<LinkedList<String>> hashTable
初始化表我使用這個代碼:
public static ArrayList<LinkedList<String>> createNewTable (){
double tableSize = Math.pow(baseTableSize, initialTableExponent);
for (int i = 0; i < tableSize; i++){
LinkedList<String> row = new LinkedList<String>();
hashTable.add(row);
}
return hashTable;
}
但是,當我在“main”中運行它時,我得到了這個異常:
線程“main”中的異常 java.lang.NullPointerException
問題是什么? 有沒有更好的方法呢?
謝謝!
這個
ArrayList<LinkedList<String>> hashTable;
應該
ArrayList<LinkedList<String>> hashTable = new ArrayList<>();
即你應該實例化hashTable。
假設 hashTable 是一個成員變量,你可以在構造函數中這樣做;
hashTable = new ArrayList<LinkedList<String>>();
您剛剛聲明了名為 hashTable 的 ArrayList 變量,但沒有對其進行初始化。 在此階段不會分配內存。 對於 Java,如果您談論的是原始類型,則它們具有由編譯器分配的默認值。 對於引用類型(Collection Framework),它們只是充當一個鈎子,您需要實例化類並將其分配給引用變量。
如果你寫了,你的代碼沒有錯
hashTable = new ArrayList<LinkedList<String>>();
在另一行。
或者,您也可以在一行中執行此操作。
ArrayList<LinkedList<String>> hashTable = new ArrayList<>();
現在你的代碼應該可以工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.