2015-05-26 2 views
0

Я пытался реализовать неориентированный граф, используя HashMap из ArrayList, чтобы представить список смежности. Тем не менее, я получил ошибку исключения нулевого указателя при инициализации списка смежности, в котором я не смог идентифицировать нулевой указатель. Извините за глупый вопрос, но я был бы признателен, если бы вы могли объяснить, почему происходит ошибка. Благодаря!java - NullPointerException в графе

import java.util.HashMap; 
import java.util.ArrayList; 

public class UDGraph {  //ajacency list implementation 
    private final int V; 
    private int E; 
    private HashMap<Integer, ArrayList<Integer>> adj; 

    public UDGraph(int V) { 
     this.V = V; 
     this.E = 0; 
     for (int v = 0; v < V; v++) { 
      Integer vertice = new Integer(v); 
      ArrayList<Integer> list = new ArrayList<Integer>(); 
      adj.put(vertice, list);  //LINE 15 
     } 
    } 

    public static void main(String[] args) { 
     UDGraph graph = new UDGraph(5); //LINE 20 
    } 
} 

И сообщение об ошибке:

Exception in thread "main" java.lang.NullPointerException 
at UDGraph.<init>(UDGraph.java:15) 
at UDGraph.main(UDGraph.java:20) 
+0

Вы не инстанцирован прил. Это значение равно нулю, когда вы пытаетесь нажать значение. – Ryan

+0

add 'adj = new HashMap >();' в начале 'UDGraph' –

+0

Я вижу ... Спасибо, Райан и Остин! – Fei

ответ

0

Вам просто нужно позвонить на ваш новый HashMap HashMap<Integer, ArrayList<Integer>> adj = new HashMap<>();

+0

Большое вам спасибо! – Fei

Смежные вопросы