我有一个每次只能处理一个请求的代码。任何人都可以帮忙
$testArray["67"][] = "1500"
答案 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--;
}
}