【发布时间】:2014-04-14 16:37:28
【问题描述】:
我有一个关于 Dijkstra 算法的练习,当我运行我的程序时,我收到以下错误:
线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:48
怎么了?我无法发送整个代码,因为它有 200 行。但是问题出现在 cmd
的那些行中
dist[i] = 整数.MAX_VALUE;和
距离[i] = 0;
感谢您的帮助。
public static void DijkstraOnNode (int start) {
int[] dist = new int [myNodes.size()]; //where myNodes is an ArrayList of Hashset<Link>
//and Link is a class that contains node kai weight
int[] pred = new int [myNodes.size()];
int[] pq = new int [myNodes.size()];
for (int i = 0; i <= myNodes.size(); i++) {
if (i!= start)
dist[i] = Integer.MAX_VALUE;
else
dist[i] = 0;
pq[i] = dist[i];
}
(代码继续)
【问题讨论】:
-
数组是 0 基索引。所以应该是
for(int i = 0; i < myNodes.size(); i++) {
标签: java arrays indexoutofboundsexception dijkstra