为什么我的for循环不通过我的LinkedList?

时间:2015-10-24 23:32:15

标签: java linked-list java-2d

我创建了几个点并将它们添加到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语句仅用于测试目的。 感谢。

4 个答案:

答案 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作为第二个循环。