【发布时间】:2014-05-16 14:12:21
【问题描述】:
有一个称为航班的 HashMap 和一个称为飞机的 ArrayList。如果用户输入 this.planes 中存在的飞机名称,该方法旨在创建一个新航班。唯一的问题是,使用这种方法,无法创建具有相同飞机和不同到达/离开的两个航班。当您创建一个与前一个具有相同平面的新 Flight 对象时,它将替换前一个。我想知道如何才能避免这种情况发生。
public void addFlight(String planeID, String departure, String arrival) {
Flight newFlight = null;
for(Plane p : this.planes) {
if(p.getID().equals(planeID)) {
newFlight = new Flight(p, departure, arrival);
}
}
flights.put(planeID, newFlight);
}
由于输入的 planeID 字符串从 this.planes 中确定了分配给新航班的飞机,因此我创建了一个循环,遍历飞机 ArrayList 以检查名称是否匹配。我很确定这就是让我无法制作具有相同“飞机”的多个“航班”的原因,但我不知道我还能改变什么。我尝试添加这个额外的 if 语句,但它并没有像我想象的那样做。
else if (this.flights.keySet().contains(p.getID())) {
newFlight = new Flight(p, departure, arrival); //In case it is a repeated Plane
}
【问题讨论】:
标签: java methods arraylist hashmap