更新/更改ArrayList中的值

时间:2013-01-11 13:02:23

标签: java arraylist

我仍然是java编程的新手,我正在寻找一些java练习的帮助,目前我无法弄清楚如何更新ArrayList中的值。

我已经使用JAXBinding生成了一些我可以用来创建XML文件的源文件。

public static void main (String[] args) {
 String delete;
 AvailableFlights todayFlight = new AvailableFlights();
 List<Flight> flights_today =  todayFlight.getFlightDetail();

Flight journey1;
        journey1 = new Flight();
        journey1.setJourney("J1");
        journey1.setAirline("KLM");
        journey1.setConnections(1);
        journey1.setDestination("Amsterdam");
        journey1.setOrigin("London");
        journey1.setSeats(10);
        journey1.setCost(200);
        journey1.setCurrency((float) 0.16);
        flights_today.add(journey1);

我发现的问题是,如果我想更新Seats值,我会做这样的事情来取消座位:

if(delete.equals("J1")) {
Flight journey1;
flights_today.add(journey1.setSeats(-1));
flights_today.add(journey1);
}

但它只是用-1覆盖它,而不是从10开始减少1个座位。

解决问题: journey1.setSeats(journey1.getSeats()-1);

3 个答案:

答案 0 :(得分:2)

您可以使用set(index, value)来更新实现List界面的类的值,包括ArrayList

答案 1 :(得分:1)

而不是使用:

journey1.setSeats(-1)

您应该使用:

journey1.setSeats(journey1.getSeats()-1)

setSeats(-1)会将席位数设置为-1,您应该指定实际值。

答案 2 :(得分:0)

当你拿走座位时,你需要:

  • 通过遍历列表并找到正确的Flight来找到正确的航班。
  • 在此航班上,您希望setSeatsgetSeats值中减去1。