簡體   English   中英

創建鏈表的數組列表

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

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