Java 创建linkedlist的arraylist
我想创建一个链式哈希表。它需要是一个LinkedList列表,指令中说我应该按照如下方式执行: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
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”。