出界但不应该

时间:2013-12-01 18:28:18

标签: java

public class Ctrl {

    Graph g = new Graph(); 
    Edge[] edges = new Edge[g.getM()];
    int[] verteY = new int[g.getM()];
    int[] verteX = new int[g.getM()];
    int[] vCost = new int[g.getM()];
    int contor=0;

    public void add(int x,int y,int c) {
        System.out.println("contor:" + this.contor);
        System.out.println("M:" + g.getM());
        verteX[this.contor] = x;
        verteY[this.contor] = y;
        vCost[this.contor] = c;
        this.contor = this.contor + 1;
}

,输出

contor:0
M:5

为什么我会得到java.lang.ArrayIndexOutOfBoundsException: 0

1 个答案:

答案 0 :(得分:3)

新的Graph getM()似乎有可能返回零,使所有四个数组都为零。

如果g.getM()稍后更改,则阵列不会自动调整大小。

我的建议是使用ArrayList而不是原始数组。这样可以很容易地附加到它们身上。