我試圖通過DFS解決迷宮,使用adj List來表示圖的頂點和邊。共有12個節點(3行[A,B,C] * 4 cols [0,..,3])。我的程序首先保存所有頂點標籤(A0,.. C3),然後檢查相鄰節點,如果可以移動,也沒有問題,它會繼續創建邊緣,在這裏它會出現錯誤。ArrayList <String> NullPointerException
adjList[i].add(vList[j].label);
我使用的調試,發現vList[j].label
不爲空它包含了一個正確的字符串(即「B1」)。顯示爲空的唯一變量是adjList[i]
,這使我相信我錯誤地實現了它。這是我做到的。
public class GraphList {
private ArrayList<String>[] adjList;
...
public GraphList(int vertexcount) {
adjList = (ArrayList<String>[]) new ArrayList[vertexCount];
...
}
...
public void addEdge(int i, int j) {
adjList[i].add(vList[j].label); //NULLPOINTEREXCEPTION HERE
}
...
}
我真的appreaciate如果任何人都可以點我在正確的軌道改編職系,以什麼它去錯了...謝謝!
運行您應該做的是更改代碼以使每行有一條語句。 adjList [i] .add(vList [j] .label);應該是 ArrayList alTmp = adjList [i]; WhateverType vTmp = vList [j]; String label = vTmp.label; alTmp.add(label); 然後看看你在調試器遇到問題的地方 –
2010-04-20 03:18:58