在使用Java的电梯系统中需要帮助

时间:2019-05-01 03:48:19

标签: java

我有一个每次只能处理一个请求的代码。任何人都可以帮忙

$testArray["67"][] = "1500"

1 个答案:

答案 0 :(得分:1)

让我们说我们有一个电梯班,我们可以存储电梯的当前楼层和方向。

class Elevator{
    int currentFloor;
    Direction direction;

    enum Direction{
         UP,DOWN;
    }
}

现在,当电梯开始在每一层移动时,它可以检查两件事。

1。如果有人想在这个楼层下楼

2。是某人正在此楼层等待并且想与升降机朝同一方向移动

因此,如果上述条件得到满足,则在每个楼层电梯停止。 如果我们将某些板子添加到电梯停靠站列表中 如果有人离开,我们将从列表中删除该停靠点

因此我们可以在电梯管理器类中维护一个列表,用于存储用户请求

List<RequestDTO> requestList = new ArrayList<>();

和另一个维护电梯应该停止的楼层的列表

List<Integers> stops = new ArrayList<>();

现在我们可以随后对当前楼层执行操作

一旦电梯到达航站楼(顶部或地面),则反转电梯方向

while(true){
    if(isDeboarding(currentFloor)){
       //remove current floor from boarded user
    }
    if(pendingRequestInSameDirection(currentFloor)){
       //remove current floor from request list
       //add requested floor in stops list
    }
    if(elevator.Direction == Direction.UP){
       currentFloor++;
    }else{
       currentFloor--;
    }
}