2013-01-11 665 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