如何在链表JAVA中添加对象?

时间:2017-01-11 16:46:11

标签: java linked-list

我想存储坐标(xy整数)和另一个整数。我有一个带有变量x,y,steps和另一个类的类,我想在其中创建另一个类的对象并将它们存储在一个链表中,但这仅在我在for循环中创建对象时才有效。当我创建具有相同名称的对象时,编译器会说“已经在方法main中定义了变量”。 如何在for循环外创建对象?

这是与for循环一起使用的

import java.util.LinkedList;
import java.util.Scanner;
public class Main 
{
public static void main(String[] args) 
{

    Scanner sc = new Scanner(System.in);
    LinkedList<Coordinates> coords = new LinkedList<Coordinates>();
    for (int j=0; j<3;j++)
    {
        Coordinates xy = new Coordinates();
        System.out.println("give x");
        xy.x=sc.nextInt();
        System.out.println("give y");
        xy.y=sc.nextInt();
        xy.steps=xy.steps+1;
        coords.add(xy);          
    }    
  }
}

我想要这样的东西,但它不起作用

import java.util.LinkedList;
import java.util.Scanner;
public class Main 
{
public static void main(String[] args) 
{

    Scanner sc = new Scanner(System.in);
    LinkedList<Coordinates> coords = new LinkedList<Coordinates>();

    Coordinates xy = new Coordinates();
    System.out.println("give x");
    xy.x=sc.nextInt();
    System.out.println("give y");
    xy.y=sc.nextInt();
    xy.steps=xy.steps+1;
    coords.add(xy);

    Coordinates xy = new Coordinates();
    System.out.println("give x");
    xy.x=sc.nextInt();
    System.out.println("give y");
    xy.y=sc.nextInt();
    xy.steps=xy.steps+1;
    coords.add(xy);                 
 }
}

不仅会有另外两个对象!

1 个答案:

答案 0 :(得分:1)

您已复制粘贴xy的声明。

这是您获得的“已定义变量”错误消息的原因。实际的错误消息甚至应该为您提供问题的行号,以便您可以识别它。

在第二种情况下,只需将其引用为 Timer randomTimer = new Timer(); randomTimer.schedule(new TimerTask() { @Override public void run() { // do your stuff including the next int size = Shapes.size(); Platform.runLater(() -> { MyPane.getChildren().add(Shapes.get(size)); }); } }, 0, 1000);