数组代表 parking 场的空闲座位。现在汽车(线程)随机 parking 然后离开。
我如何知道哪些插槽是免费的?我是否必须每次迭代数组才能找到空闲插槽,或者是否有更好的解决方案?是否可以创建第二个数组并仅存储其中的免费索引?
我应该使用与数组不同的数据结构吗?
最佳答案
Do I have to iterate the Array each time to find a free slot
您不必无休止地遍历数组来检查空闲插槽。
让汽车在离开插槽时通知您其索引。当一辆车即将进入时,读取数组中的空闲槽位。输入后,标记索引。
您可能有一个实现 Runnable 的 Car 对象:
class Car implements Runnable{
private int pos; //index of array
}
通知可以使用观察者模式来实现,您可以在其中维护汽车列表。当汽车离开时,通知其观察者。
关于Java数组随机存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47099441/