我仍然是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);
答案 0 :(得分:2)
您可以使用set(index, value)
来更新实现List
界面的类的值,包括ArrayList
。
答案 1 :(得分:1)
而不是使用:
journey1.setSeats(-1)
您应该使用:
journey1.setSeats(journey1.getSeats()-1)
setSeats(-1)
会将席位数设置为-1,您应该指定实际值。
答案 2 :(得分:0)
当你拿走座位时,你需要:
Flight
来找到正确的航班。setSeats
从getSeats
值中减去1。