Java 创建linkedlist的arraylist

Java 创建linkedlist的arraylist,java,collections,arraylist,linked-list,Java,Collections,Arraylist,Linked List,我想创建一个链式哈希表。它需要是一个LinkedList列表,指令中说我应该按照如下方式执行: ArrayList<LinkedList<String>> hashTable ArrayList哈希表 要初始化表,我使用以下代码: public static ArrayList<LinkedList<String>> createNewTable (){ double tableSize = Math.pow(b

我想创建一个链式哈希表。它需要是一个LinkedList列表,指令中说我应该按照如下方式执行:

ArrayList<LinkedList<String>> hashTable
ArrayList哈希表
要初始化表,我使用以下代码:

            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;
}
publicstaticarraylistcreatenewtable(){
double tableSize=Math.pow(baseTableSize,initialtableindex);
for(int i=0;i
但是,当我在“main”中运行它时,会出现以下异常:

线程“main”java.lang.NullPointerException中出现异常

有什么问题? 有更好的方法吗

谢谢

这个

ArrayList<LinkedList<String>> hashTable;
ArrayList哈希表;
应该是

ArrayList<LinkedList<String>> hashTable = new ArrayList<>();
ArrayList哈希表=新的ArrayList();
i、 e.您应该实例化哈希表。

ArrayList<LinkedList<String>> hashTable;
ArrayList哈希表;
应该是

ArrayList<LinkedList<String>> hashTable = new ArrayList<>();
ArrayList哈希表=新的ArrayList();

i、 e.您应该实例化hashTable。

假设hashTable是一个成员变量,您可以在构造函数中执行此操作


hashTable=newarraylist()

假设hashTable是一个成员变量,您可以在构造函数中执行此操作


hashTable=newarraylist()

您刚刚声明了名为hashTable的ArrayList变量,但没有初始化它。在此阶段将不分配内存。对于Java,如果您谈论的是基元类型,则它们具有由编译器指定的默认值。对于引用类型(集合框架),它们只是作为一个钩子,您需要实例化该类并将其分配给引用变量

如果您已经编写了代码,那么您的代码就没有错

hashTable = new ArrayList<LinkedList<String>>();
hashTable=newarraylist();
另一行

或者,您也可以在一行中完成此操作

ArrayList<LinkedList<String>> hashTable = new ArrayList<>();
ArrayList哈希表=新的ArrayList();

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

您刚刚声明了名为hashTable的ArrayList变量,但没有初始化它。在此阶段将不分配内存。对于Java,如果您谈论的是基元类型,则它们具有由编译器指定的默认值。对于引用类型(集合框架),它们只是作为一个钩子,您需要实例化该类并将其分配给引用变量

如果您已经编写了代码,那么您的代码就没有错

hashTable = new ArrayList<LinkedList<String>>();
hashTable=newarraylist();
另一行

或者,您也可以在一行中完成此操作

ArrayList<LinkedList<String>> hashTable = new ArrayList<>();
ArrayList哈希表=新的ArrayList();

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

在哪里初始化哈希表变量(实际上是ArrayList)?在添加元素之前,您需要在某个地方说“new”。您在哪里初始化哈希表变量(实际上是ArrayList)?在添加元素之前,您需要在某处说“new”。