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

Why is my for loop not going though my LinkedList?

我创建了几个点并将它们添加到 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());
        }
    }
}

打印语句仅用于测试目的。 谢谢

您在两个循环中使用了相同的计数器 i

您正在使用相同的变量索引 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());
    }
}

在第二个循环中您还使用 i 因此在第二个循环之后 i == points.size() 并且您的第一个循环条件为假。例如,对第二个循环使用 j

你的两个循环都使用变量“i”。

只需在第二个循环中为变量使用另一个名称即可。