2013-01-11 401 views
2

对于java编程,我还是一个相当新的东西,我正在寻找一些有关我的java练习的帮助,目前我无法弄清楚如何更新ArrayList中的值。更新/更改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);

+1

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

+0

感谢Leonidos那样的魅力! – Ket

回答

1

而不是使用:

journey1.setSeats(-1)

你应该使用:

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

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

2

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

+0

我已经试过了,它似乎并不喜欢它,我所做的是在setter上的Flight.class上删除void类型并返回它。然后我尝试使用此接口列表中设置的'flights_today.set(1,journey3.getSeats());'得到此错误''方法设置不能应用于给定类型; 需要:int,航班 找到:int, int reason:实际参数int不能通过方法调用转换转换为Flight 其中E是类型变量: E extends接口List“中声明的对象” – Ket

0

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

  • 查找通过列表迭代,并找到正确的Flight正确的飞行。
  • 在此航班上,您想通过从getSeats值中减去1来获得setSeats