2

我对 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);

4

3 回答 3

2

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

于 2013-01-11T13:03:18.407 回答
2

而不是使用:

journey1.setSeats(-1)

你应该使用:

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

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

于 2013-01-11T13:11:06.263 回答
0

当您取消座位时,您需要:

  • 通过遍历列表并找到正确的航班来找到正确的航班Flight
  • 在此航班上,您希望从值中setSeats减去 1 。getSeats
于 2013-01-11T13:07:01.200 回答