我正在研究在最小生成樹上實現Kruskal算法的程序。我把它作爲我的Kruskal.java文件中的主要方法。Java中的數組索引問題
public static void main(String[] args) {
In in;
in = new In(args[0]);
EdgeWeightedGraph G = new EdgeWeightedGraph(in);
Kruskal mst = new Kruskal(G);
for (Edge e : mst.edges()) {
StdOut.println(e);
}
StdOut.printf("%.5f\n", mst.weight());
}
我遇到的問題是,當我嘗試運行該程序時,我收到一個數組越界異常。異常源自
in = new In(args[0]);
line。我知道,當簡單地說,當程序試圖向數組中加載更多項目時,會出現數組越界異常。這最終導致它「走出界限」。在下面的主要方法中,EdgeWeightGraph引用程序中的另一個類EdgeWeightGraph.java。我相信它正從EdgeWeightedGraph類中填充,但我不完全確定。有關如何解決這個數組超出界限異常的任何建議?
編輯:這是我使用的In.java文件的鏈接:http://algs4.cs.princeton.edu/12oop/In.java.html這裏是我的克魯斯卡類,從上面的代碼來自http://algs4.cs.princeton.edu/43mst/KruskalMST.java.html
不,當嘗試訪問數組中不存在的元素時,會發生IOoBE。你通過命令行參數嗎? – ChiefTwoPencils
發佈In類的代碼以及堆棧跟蹤。當您嘗試訪問不在數組中的索引時,會發生索引超出界限。即當數組長度爲10時的索引10,索引10是第11個元素。 –
我沒有傳遞任何命令行參數 – user3068177