gpt4 book ai didi

java - Java中的数组索引问题

转载 作者:行者123 更新时间:2023-12-02 04:13:32 26 4
gpt4 key购买 nike

我正在开发一个程序,在最小生成树上实现 Kruskal 算法。我将此作为我的 Kruskal.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]);

线。我知道,简单来说,当程序尝试向数组加载超出其空间的项目时,就会发生数组越界异常。这最终导致它“出界”。在下面的main方法中,EdgeWeightGraph引用了程序中的另一个类EdgeWeightGraph.java。我相信它是从 EdgeWeightedGraph 类填充的,但我不完全确定。关于如何修复此数组越界异常有什么建议吗?

编辑:这是我正在使用的 In.java 文件的链接:http://algs4.cs.princeton.edu/12oop/In.java.html这是我的 Kruskal 类,上面的代码来自 http://algs4.cs.princeton.edu/43mst/KruskalMST.java.html

最佳答案

错误的发生只是因为您在运行给定类的 main 方法时没有传递任何参数。

所以当jre运行以下语句时

in = new In(args[0]);

它没有在 args 数组的第 0 个位置获取任何传递的参数;这会导致此错误。

传递参数,你就不会再出现这个错误了。

要了解如何正确地将参数传递给 main 方法,请参阅 java documentation .

关于java - Java中的数组索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33556943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com