我得到了NullPointerException
,我不知道为什么。
LinkedList<Character>[][] list = new LinkedList[n][n];
for (int j = 0; j < n; ++j)
{
for (int m = 0; m < 1; m++)
{
// Here is the problem
list[j][m].add("" + (characterArray[j]));
}
}
我想将数组中的字符添加到列表中。当我运行时它会显示NullPointerException
。我不知道如何初始化列表。
答案 0 :(得分:4)
您创建了一个数组,但未能将任何LinkedList
个对象放入数组中。在向其中添加字符之前,您需要为LinkedList
分配一个新的list[j][m]
。
答案 1 :(得分:0)
这里的问题是你创建了一个LinkedList对象的二维数组。但请记住,Java中对象的默认值为null,因此在首次创建数组时,您有一个2维的空数组。在嵌套的for循环中,您尝试填充您认为自己拥有的链接列表对象,但不是(它们的值为null)。所以基本上你说
null.add("" + (characterArray[j]));
显然这会创建一个空指针异常。
所以解决方案是在尝试添加对象之前使对象(在这种情况下创建一个新的LinkedList对象)。通过单独的2个嵌套for循环,如下所示:
for(int j = 0; j < n; j++)
{
for(int m = 0; m < n; m++)
{
list[j][m] = new LinkedList<Charater>();
}
}
通常是嵌套循环的代码。
或者您可以在嵌套for循环中声明对象
for (int j = 0; j < n; ++j)
{
for (int m = 0; m < 1; m++)
{
// Here is the problem
list[j][m] = new LinkedList<Charater>();
list[j][m].add("" + (characterArray[j]));
}
}