java两部电梯1号和2号电梯,每经过一层显示所在楼层,1号电梯只会在一三四六八九层
时间: 2023-05-14 17:00:36 浏览: 64
这道题目主要考察的是对电梯调度的算法的理解。首先要知道1号电梯只能在特定层数停靠,因此需要判断当前请求是否符合限定条件,如果符合条件则让1号电梯执行请求,否则让2号电梯执行请求。其次,需要考虑多个请求之间的优先级问题,如果当前有多个请求,则需要判断每个请求到该电梯运行路径中的距离,优先执行距离近的请求。
为了实现这个算法,可以定义一个电梯类,其中包含以下属性和方法:
1. 楼层数:电梯当前所在的楼层数,可以用一个整数来表示。
2. 运行方向:电梯当前的运行方向,可以用一个布尔值来表示,true表示向上运行,false表示向下运行。
3. 请求队列:电梯当前的请求队列,其中包含了所有待执行的请求,可以用一个列表来表示。
4. 添加请求:将新的请求添加到请求队列中,如果队列中已经存在相同的楼层数,则需要更新该请求的运行方向。
5. 执行请求:从请求队列中取出一个请求并执行,执行完毕后从队列中删除该请求。
6. 判断请求方向:根据当前请求的目标楼层和电梯当前所在楼层,来判断请求的方向是向上还是向下。
7. 判断请求是否符合条件:判断请求是否符合电梯的限定条件,如果符合则返回true,否则返回false。
在处理请求时,可以根据请求类型来判断该请求应该由哪个电梯来执行。对于限定条件的请求,则由1号电梯来执行,否则由2号电梯来执行。在执行请求时,可以通过比较请求的目标楼层和电梯当前所在楼层的距离来确定请求的执行顺序。具体的实现方法可以使用一些排序算法,比如快速排序或者堆排序。
综上所述,这道题目考察了对电梯调度算法的理解,需要考虑多种情况下的请求优先级和执行顺序问题,并需要通过编写电梯类来实现相应功能。