我正在尝试初始化一个数组并在Java中插入一些值,但是我超出了界限范围。这是代码
int xPoints[] = new int[]{};
int i = 0;
for(Edge e : myVectorOfEdges){
xPoints[i] = e.start;
i++;
}
我必须使用这种类型的数据结构,因为我正在处理只接受int[]
类型的多边形。
答案 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();