我创建了几个点并将它们添加到LinkedList中。我试图遍历每个点,在它和所有其他点之间画一条线。我创建了这两个for循环,但是,只有第二个循环遍历LinkedList。在我的测试中,列表中有4个点。
这是我的代码:
public void draw(Graphics2D g){
g.setColor(Color.BLACK);
g.setStroke(new BasicStroke(10));
System.out.println("Linked List Size: " + points.size());
for(int i = 0; i < points.size(); i++){
System.out.println("Current Point: " + points.get(i));
Point2D tempPoint = points.get(i);
for(i = 0; i < points.size(); i++){
Point2D tempEndPoint = points.get(i);
g.drawLine((int)tempPoint.getX(), (int)tempPoint.getY(), (int)tempEndPoint.getX(), (int)tempEndPoint.getY());
System.out.println("" + (int)tempPoint.getX() + " " + (int)tempPoint.getY() + " " + (int)tempEndPoint.getX() + " " +(int)tempEndPoint.getY());
}
}
}
print语句仅用于测试目的。 感谢。
答案 0 :(得分:2)
您使用的是相同的变量索引i
,请更改为j
之类的其他字母。
for(int i = 0; i < points.size(); i++){
System.out.println("Current Point: " + points.get(i));
Point2D tempPoint = points.get(i);
for(int j = 0; j < points.size(); j++){
Point2D tempEndPoint = points.get(j);
g.drawLine((int)tempPoint.getX(), (int)tempPoint.getY(), (int)tempEndPoint.getX(), (int)tempEndPoint.getY());
System.out.println("" + (int)tempPoint.getX() + " " + (int)tempPoint.getY() + " " + (int)tempEndPoint.getX() + " " +(int)tempEndPoint.getY());
}
}
答案 1 :(得分:2)
你的循环都使用变量&#39; i &#39;。
在第二个循环中为变量使用另一个名称。
答案 2 :(得分:1)
您对两个循环使用相同的计数器i
。
答案 3 :(得分:1)
在第二个循环中,您也使用i
,因此在第二个循环i == points.size()
之后,您的第一个循环条件为false。例如,使用j
作为第二个循环。