这是我的LinkedList数组的另一个问题。我已经创建了一个数组(使用this method的第二个答案):
public static LinkedList<Connection>[] map;
... // later ....
map = (LinkedList<Connection>[]) new LinkedList[count];
当我运行我的程序时,我在这个for
循环内的行中得到一个NullPointerException:
for (int j = 0; j < numOfConnections; j++) {
map[i].add(new Connection(find(s.next()), s.nextDouble(), s.next())); // NPE!
}
有人可以告诉我为什么会抛出这个异常吗?
答案 0 :(得分:2)
创建阵列时,map
已满{4}}。您需要自己初始化每个成员。
null
(如果你愿意,可以将这两个步骤结合起来。)
答案 1 :(得分:0)
在添加元素之前,首先需要使用new
子句在内存上“分配”空间,如下例所示:
for ( int k = 0; k < count; k++ )
{
map[k] = new LinkedList<Connection>();
map[k].add(new Connection(s.next(), s.nextDouble(), s.next()));
}
您声明的数组的大小为count
,但在循环中使用numOfConnections
作为限制。将numOfConnections
改为count
。或者,如果numOfConnections
大于count
,您将获得超出约束的异常
btw:如果numOfConnections是你要添加到LinkedList [k]的值的数量,那么你要映射要添加的列表?例如:numOfConnections [] = {3,5,2};