适用于车辆停放系统的数据结构

时间:2016-05-21 03:55:40

标签: java data-structures

我正在开发车辆停放系统java应用程序。应用程序应该记录汽车进入停车场时,汽车从停车场离开时,停车状态,是否已满。该应用程序还应检查停放在停车场的汽车的剩余容量。 那么,我想问一下我应该针对特定问题使用什么数据结构?

注意:队列无法使用,因为它们基于先进先出。所以,汽车首先进入停车场我不先离开。所以,请为特定情况建议适当的数据结构。

2 个答案:

答案 0 :(得分:1)

用于存放汽车的适当容器为Set,因为:

  • 元素(汽车)没有特定的顺序。
  • 每辆车只能停放一次。

其他容器具有此处不需要的特殊属性:

  • 列表:元素的排序(可能)在这里没用。
  • 队列:要删除的下一个元素不一定是第一个已添加的元素。
  • Stack:要删除的下一个元素通常不是最后添加的元素。

Java提供了Set的不同实现。从性能的角度来看,HashSet实现在这里是一个不错的选择,因为它具有操作addremovecontains和{{1}的恒定时间复杂度你可能需要的。

答案 1 :(得分:0)

您的用例没有现成的数据结构。你必须实现自己的。将此代码视为一个开始的想法:

class ParkingSystem {
  List<Car> parkingCars;
  void onEnter(){
    Car car = new Car();
    car.entered = new Date();
    parkingCars.add(car);
  }
  void onLeave(Car car){
    parkingCars.remove(car)
  }
  int getCapacity(){
    return this.parkingCars.size();
  }
}
class Car {
  Date entered;      
}