无法添加到地图

时间:2014-10-16 03:50:19

标签: java tree adjacency-list

似乎在主线程中获得NullPointerException,特别是在我放置节点的行和我调用addEdge方法的位置。

private TreeMap<Node, Set<Node>> nodeToNeighbours;

主要

Graph test1 = new Graph();
Node n1 = new Node(1); 
Node n2 = new Node(2); 
test1.addEdges(n1, n2);

addEdges Class

public void addEdge(Node node1, Node node2) {

    nodeToNeighbours.put(node2, new TreeSet<Node>());
    nodeToNeighbours.put(node1, new TreeSet<Node>());
}

2 个答案:

答案 0 :(得分:1)

您只是声明地图而不是在此初始化:

private TreeMap<Node, Set<Node>> nodeToNeighbours;

所以nodeToNeighbours为空,因此尝试向其添加内容会导致NullPointerException。你可以按照这里提到的那样初始化:

nodeToNeighbours = new TreeMap<Node, Set<Node>>();

如果您使用的是Java 7或更高版本,那么就像这样:

nodeToNeighbours = new TreeMap<>();

答案 1 :(得分:0)

你刚宣布它没有初始化它

private TreeMap<Node, Set<Node>> nodeToNeighbours;

默认情况下,每个引用都会使用null进行初始化,因此您将获得NullPointerException。尝试将其初始化为

nodeToNeighbours = new TreeMap<Node, Set<Node>>();