2017-10-21 120 views
0

我在做Java租车应用程序。我应该在Java中使用哪种数据结构?

  1. Car类字符串RegNoproducermodel和布尔isCarRented。汽车
  2. 列表我保持在:

    Collection<Car> carList = new HashSet<Car>();

,一切工作正常。

现在我需要做的是对整个租赁公司历史/统计模块:

  • 所有汽车租赁的历史

  • 每个汽车租赁历史分开

我的想法是:

  1. 与创建CarHistory类:

    私有静态List<String> rentalDates = new ArrayList<String>();

  2. 保持有日期这我要添加的每个车是租来的时间。

  3. 创建数据结构,记住每个汽车租赁历史是这样的:

    static Map<Car, CarHistory> rentalList = new HashMap<Car, CarHistory>();

这是个好办法吗?我在这个解决方案中遇到了单个CarHistory的构造函数问题。不太确定它应该返回什么。我应该在首次出租后创建它吗?并且应该为每辆车创建空的ListrentalDates以创建HashMap

+1

你似乎很喜欢静态,不是吗?将它用于rentalDates是没有意义的。阅读https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html。为什么汽车没有保留自己的历史(就像它已经保存了自己的汽车轮胎标志一样)?为什么使用字符串来存储日期? –

+0

非常感谢您的指导。当然,将字符串更改为日期数组,仍然需要考虑更多关于过度使用静态的信息。现在Car的每个实例都有自己的故事。 –

回答

2

你所要做的是实现一个一对一的关系,因为一个Car只有一个Car只有一个CarHistory和一个CarHistory关注。这就是为什么,正确的做法是将CarHistory carHistory字段添加到Car的类别中。

在开始时,CarHistory的列表将为空。每次预订时,您只需将一条记录添加到列表中即可。汽车历史将很容易获得,而且该模型将以最准确的方式与现实相匹配。

+0

谢谢。我觉得我太过于复杂:)用你的解决方案看起来更合理。 –

相关问题