使用循环输入arraylist

时间:2018-06-14 08:17:33

标签: java arraylist coordinates

class Point
{
    double x;
    double y;

    public String toString()
    {
        return x + " " + y;
    }
}
class Main
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        Point points = new Point();
        ArrayList<Object> coordinates = new ArrayList<Object>();

        for (int i = 0; i < 3; i++)
        {
            points.x = input.nextDouble();
            points.y = input.nextDouble();
            coordinates.add(points);
        }

        for (Object i : coordinates)
        {
            System.out.println(i);
        }
    }
}
  

我想在一个arraylist中存储10 x和y坐标我试图创建一个类并存储具有x和y坐标的对象的arraylist我正在使用循环因为我想存储许多点并且当我使用循环它存储最后一个点只有十倍如何解决这个问题谢谢

1 个答案:

答案 0 :(得分:3)

将你的循环改为

    for (int i = 0; i < 3; i++)
    {
       Point points = new Point();
        points.x = input.nextDouble();
        points.y = input.nextDouble();
        coordinates.add(points);
    }

您需要创建新对象并将其放入列表中,因此列表包含对具有不同值的多个对象的引用。否则,您将多次改变同一个对象,并且该列表包含对同一对象的多个引用。