繁体   English   中英

JAVA不能向一个arrayList添加多个对象

[英]JAVA can't add more than one object to an arrayList

我正在尝试添加多个停靠点(一个停靠站具有变量(“ Station stop”和int numberLiters”到具有此循环的路由以及它们各自的OS升数)。

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();
    }

这个循环被执行了几次,但是只填充一次arrayList,我做了consola.println(i.toString()); 还有一个for循环来打印数组中的数据,无论我运行该脚本多少次,它只会添加我键入的最后一个。 这是我的上课路线:

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;
    }

我究竟做错了什么? 是添加方法吗? 或在AskStation方法循环中初始化对象?

 Stop s=new Stop(po,nLiters);

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

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

Route r = new Route();

也,

arrayList<Stop> 

应该

ArrayList<Stop>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM