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"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<>();

现在您的代码应该可以工作了。

相关内容

  • 没有找到相关文章

最新更新