LinkedList的数组添加新节点

时间:2012-12-09 19:53:00

标签: java linked-list

这是我的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!
}

有人可以告诉我为什么会抛出这个异常吗?

2 个答案:

答案 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};