如何正确使用数组

时间:2016-05-08 20:04:21

标签: java arrays indexoutofboundsexception

我正在尝试初始化一个数组并在Java中插入一些值,但是我超出了界限范围。这是代码

int xPoints[] = new int[]{};
int i = 0;
for(Edge e : myVectorOfEdges){
    xPoints[i] = e.start;
    i++;

}

我必须使用这种类型的数据结构,因为我正在处理只接受int[]类型的多边形。

3 个答案:

答案 0 :(得分:2)

您已将xPoints初始化为空数组,因此任何访问其中一个(不存在的)元素的尝试都将导致ArrayIndexOutOfBoundsException。相反,您应该将其初始化为与您正在迭代的myVectorOfEdges相同的大小:

int xPoints[] = new int[myVectorOfEdges.length];

答案 1 :(得分:1)

int xPoints[] = new int[myVectorOfEdges.length];
    int i = 0;
    for(Edge e : myVectorOfEdges){
        xPoints[i] = e.start;
        i++;

    }

答案 2 :(得分:0)

只需使用慢速版本:

    int[] xPoints = myVectorOfEdges.stream().mapToInt(e -> e.start).toArray();