我想遍历给定顶点集中的所有顶点,并比较两对之间的距离。假设我的顶点列表如下:
(1,2),(3,4),(5,6),(7,8),(9,10),(11,12)
我想以下列方式遍历顶点集:
第一次迭代:
for pair (1,2) and (3,4) I want to compare it with [(5,6),(7,8)],[(7,8), (9,10)]and[(9,10),(11,12)]
第二次迭代:
for pair (3,4) and (5,6) I want to compare it with [(7,8),(9,10)]and[(9,10),(11,12)]
第3次迭代:
for pair (7,8) and (9,10) I want to compare it with [(9,10),(11,12)]
我将如何在java中使用嵌套循环?我想将这组顶点存储在一个arraylist中。我尝试过以下方式,但获得例外:
for(i=0;i<arraylist.size();i++)
{
for(j=i+2;j<arraylist.size();j++
{
//x,y,u,v are objects of the vertex class
x=arraylist.get(i);
y=arraylist.get(i+1);
u=arraylist.get(j);
v=arraylist.get(j+1);
}
}
我需要在上面的代码片段中进行哪些额外的更改来遍历顶点集,如上所述?
答案 0 :(得分:3)
您收到IndexOutOfBoundsException
个异常,因为您尝试使用索引不在列表中的get()
项(请参阅Arraylist.get())
j<arraylist.size()
v=arraylist.get(j+1); <- (j+1) can become arraylist.size().
所以你应该把你的循环限制为:
j<arraylist.size()-1