JAVA 无法向 arrayList 添加多个对象

标签 java

我正在尝试添加多个站点(一个站点具有变量(“Station stop”和 int numberLiters”到具有此循环的路线及其各自的操作系统升数。

private int askStation( ) {
        Station po=null;
        int id;

        consola.println("Id Station?");
        id = consola.readInt();
        po=station.getStation(id);

        if( (po==null)){
            consola.println("Unknown Station" );
            consola.readLine();
            return 0;
        }
        consola.print( "How many litters ");
        int nLiters = consola.readInt();
        if (po.checksLiters(nLiters)==false)
            consola.println("Invalid Quantity");
        else {
            //ADD STOP TO THE ROUTE
            Stop s=new Stop(po,nLiters);

            Route r=new Route(1);
            r.addStop(s);
            consola.println(r.toString());

        }
        consola.readLine();
        consola.clear();
    }

这个循环进行了 x 次,但它只填充了 arrayList 一次,我制作了 consola.println(i.toString()); 和一个 for 循环来打印里面的数据数组,无论我运行这个脚本多少次,它只会添加我输入的最后一个。这是我的类(class)路线:

public class Route {

    private int start;
    private arrayList<Stop>stops=new arrayList <Stop>();


    public Route(int start) {
    this.start = start;
    }

    public void addStop( Stop s ){
        stops.add(s);
    }

    public ArrayList <Stop> getStops(){
        return stops;
    }

我做错了什么?是add方法吗?或者在askStation方法循环中初始化对象?

最佳答案

 Stop s=new Stop(po,nLiters);

        Route r=new Route(1);
        r.addStop(s);

您每次都会创建一条新路线,然后向新路线添加一个停靠点,因此您会丢失旧的停靠点。为了避免这种情况,请将 Route 设置为方法外部的字段,而不是执行

Route r = new Route();

另外,

arrayList<Stop> 

应该是

ArrayList<Stop>

关于JAVA 无法向 arrayList 添加多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36747609/

相关文章:

java - 帮助调试 Java3d 应用程序中的 GL_VERSION 错误

Java继承...困惑

java - 确保 Spring 组件中线程安全的最高效方法是什么?

java - 谁来设置 JAXWS 2.2 客户端超时

java - SQLNonTransientConnectionException

java - 访问其他 View 工作集

java - 我如何在 Java 中表示来自 C++ 的 numeric_limits?

java - 从信任库验证 Java 中的证书链

java - 如何在 Java 中围绕一个点旋转多边形/点

java - 从 SVG 图像导入的 vector 图像在 ImageView 中无法识别